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

4

我希望了解如何在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'}]


CUSTOM_TYPE 是名称和薪水,输入中的薪水在哪里?另外,你的查询在普通 JDBC 中是否有效? - user7294900
是的,薪资是可选的,谢谢您的回复。 - sunleo
1个回答

3

那么我需要在Groovy中输入整个代码来执行一个过程并检查响应吗? - sunleo
如果是关于连接配置的问题,我需要自己创建所有内容还是可以使用jMeter的JDBC连接配置? - sunleo
您可以使用JDBC连接配置来实例化连接,例如:java.sql.Connection conn = org.apache.jmeter.protocol.jdbc.config.DataSourceElement.getConnection("your_variable_name_here"); 其他逻辑,例如准备和执行查询以及处理结果,都需要完全使用Groovy实现。 - Dmitri T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接