响应消息:java.sql.SQLException:无法转换为内部表示形式:jmeter

时间:2018-07-05 17:48:00

标签: java oracle plsql jmeter

我想知道如何在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'}

1 个答案:

答案 0 :(得分:3)

查看AbstractJDBCTestElement.setArgument()函数时,我看不到Types.Array子句,因此我的期望是您无法使用内置的JMeter JDBC测试元素来实现此功能。

我建议考虑切换到JSR223 SamplerGroovy language,在这里您将完全控制自己的逻辑流程。如果需要,请参见Using Array Objects教程以了解更多详细信息。