如何将objType字段中的多个值传递给方法参数
当前,我将单个行存储在objType字段中,并将其作为输入传递给oracle sp,现在我需要在objType中存储并传递多行。如何实现呢? 我试图创建像多维之一的objType: Object [] objType = new Object [3] [3], 它没有帮助。 请在下面查看我的示例代码并获得帮助。
Object[] objType = new Object[3];
objType[0] = new Integer(lineNo);
objType[1] = new String(itemCode);
objType[2] = new Integer(ORDER_QTY));
structs[index]=conn.createStruct("XXHDB_REC", objType);
Array reportsArray = ((OracleConnection)
conn).createOracleArray(“ XXHDB_TBL_TYPE”,structs);
//Input to oracle package
oracleCallableStmt.setArray(4, reportsArray);
我需要存储固定3列的'n'行。 [n] [3]。
Stored Proc Definition:
create_booking(p_reservation_id => p_reservation_id,
p_Hybris_Cust_nbr => p_Hybris_Cust_nbr,
p_cust_nbr => p_cust_order_no,
p_group => j.GROUP_ID,
p_order_lines => v_rec) --> this is the input field
答案 0 :(得分:0)
您的示例代码Object[] objType = new Object[3][3]
无效,因为objType的类型错误,应为Object[][] objType = new Object[n][3]
。但是,如果您知道要存储的值,我强烈建议不要使用Object
作为类型,而可以对它们使用某种容器,例如:
class Container {
private Integer lineNo;
private String itemCode;
private Integer ORDER_QTY;
// rest omitted
}
然后将其用作您的数组或任何您要使用的类型。 Container[] objType = new Container[n];
。