如何使用Java将ID和值数组作为参数输入到存储过程中

如何使用Java将ID和值数组作为参数输入到存储过程中,java,stored-procedures,procedure,callable-statement,Java,Stored Procedures,Procedure,Callable Statement,我需要将一个数组作为参数输入到存储过程中,数组的ID(数字类型)和值(VARCHAR2类型)。结构如下所示 TYPE plan_dtl AS OBJECT( p_id NUMERIC, p_value VARCHAR2 ); TYPE plan_tbl AS TABLE OF plan_dtl; PROCEDURE sp_update(p_name IN OUT VARCHAR2, p_array IN pk_manage.plan_tbl); 有人能告诉我如何使用java在位置2设置一个值数

我需要将一个数组作为参数输入到存储过程中,数组的ID(数字类型)和(VARCHAR2类型)。结构如下所示

TYPE plan_dtl AS OBJECT(
p_id NUMERIC,
p_value VARCHAR2
);
TYPE plan_tbl AS TABLE OF plan_dtl;
PROCEDURE sp_update(p_name IN OUT VARCHAR2, p_array IN pk_manage.plan_tbl);
有人能告诉我如何使用java在位置2设置一个值数组吗

CallableStatement cs = conn.prepareCall("{call package_name.sp_update(?,?)}");  
cs.registerOutParameter(1,Types.CHAR);
cs.setString(1, "some name");  
cs.setArray(2, "how to pass it here ?")
样本输入如下

id(数字)值(VARCHAR2)


所有这些值都应该作为数组传递给位于位置2的callable语句,Hi@Jamey的可能重复项我已经经历过了。但我的情况不同。它不是一个字符数组。这是一个id和值的数组,其中id是数字类型,值是varchar2 typeAh OK,那么您是在寻找字典方法吗?我想您必须传递两个单独的数组,一个用于键,一个用于值。不过这有点超出我的专业知识范围,所以希望其他人能帮助你。从一段时间以来,我一直在尝试将HashMap作为arraylist进行搜索,但它也不能像那样工作。由于该过程中只有一个参数,我想我无法传递两个单独的数组。这是针对C#的,但我相信同样的原则应该适用:。当你说程序中只有一个参数时,你不能修改程序吗?Hi@Jamey的可能重复我已经经历了这个。但我的情况不同。它不是一个字符数组。这是一个id和值的数组,其中id是数字类型,值是varchar2 typeAh OK,那么您是在寻找字典方法吗?我想您必须传递两个单独的数组,一个用于键,一个用于值。不过这有点超出我的专业知识范围,所以希望其他人能帮助你。从一段时间以来,我一直在尝试将HashMap作为arraylist进行搜索,但它也不能像那样工作。由于该过程中只有一个参数,我想我无法传递两个单独的数组。这是针对C#的,但我相信同样的原则应该适用:。当您说过程中只有一个参数时,您是否无法修改该过程?
[{88627,"02"},{88671,"01"},{88644,"05"}]