我想知道如何在jMeter中为oracle存储过程传递数组值。
已经在下面的详细信息设置中,但是不能使用。请为此提供帮助。
Oracle PL / SQL:
PROCEDURE Get_User(
p_input1 IN VARCHAR2,
p_input2 IN VARCHAR2,
p_input3 IN VARCHAR2,
p_input4 IN SCHEMA.TABLE1.COLUMN1%TYPE,
arr_user_names IN SCHEMA2.CUSTOM_TYPE_TABLE,
p_user_name_out OUT VARCHAR2,
p_address_out OUT SCHEMA.TABLE1.COLUMN1%TYPE,
arr_result_set OUT SYS_REFCURSOR);
create or replace type CUSTOM_TYPE as object( name VARCHAR2(30),salary NUMBER(5,2));
create or replace type CUSTOM_TYPE_TABLE is table of CUSTOM_TYPE;
查询:
call SCHEMA1.PKG1.Get_User(?,?,?,?,?,?,?,?)
参数值:
INVAL1,INVAL3,INVAL3,INVAL4,'users':[{'name':'all'}],OUT,OUT,OUT
参数类型:
VARCHAR,VARCHAR,VARCHAR,VARCHAR,ARRAY,OUT VARCHAR,OUT VARCHAR,OUT -10
变量名称:
p_input1,p_input2,p_input3,p_input4,arr_user_names,p_user_name_out,p_address_out,arr_result_set
ResultSet变量名称:
p_user_name_out,p_address_out,arr_result_set
错误:响应消息:java.sql.SQLException:无法转换为内部表示形式:'users':[{'name':'all'}
答案 0 :(得分:3)
查看AbstractJDBCTestElement.setArgument()函数时,我看不到Types.Array子句,因此我的期望是您无法使用内置的JMeter JDBC测试元素来实现此功能。
我建议考虑切换到JSR223 Sampler和Groovy language,在这里您将完全控制自己的逻辑流程。如果需要,请参见Using Array Objects教程以了解更多详细信息。