响应消息:java.sql.SQLException:无法转换为内部表示: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’}

解决方法:

查看AbstractJDBCTestElement.setArgument()函数我没有看到Types.Array子句,所以我的期望是你无法使用内置的JMeter JDBC测试元素来实现它.

我建议考虑切换到JSR223 SamplerGroovy language,在那里你可以完全控制你的逻辑流程.有关详细信息,请参阅Using Array Objects教程.

上一篇:《Oracle PLSQL从入门到精通》pdf电子版


下一篇:在没有“ORA-29532 Java调用因未捕获的Java异常而终止”的情况下从Java存储过程中引发错误