从Oracle ReturnCursor中检索值(少数输出参数是ComplexTypes)

时间:2013-02-28 22:30:46

标签: java oracle stored-procedures

我是java和SQL的初学者。请求帮助,了解如何从Oracle Cursor类型结果集中检索值。

我正在尝试从Java调用存储过程并检索结果集值以供进一步处理。

存储过程的IN参数很少,比如Input_1和Input_2。 OUT参数定义为cursorType,定义为,     OUT_1号码(10),     OUT_2 VARCHAR 2(30 BYTE),     输出3_OBJ的“OUT_3”AS VARRAY(750)。 其中输出3_OBJ定义为

CREATE OR REPLACE TYPE schema."Output 3_OBJ" AS OBJECT
    (
      ATTRIBUTE_C               VARCHAR2(30),
      VALUE_X                   VARCHAR2(2000 BYTE),
      VALUE_TS                  TIMESTAMP(6),
      VALUE_I                   NUMBER(10),
      OPERAND_C                 VARCHAR2(10)
    )

我可以检索OUT_1和OUT_2。为了获得OUT_3下的每个子元素,请你帮我。我对另一个Stored过程有一个相同的结构,我使用Array Descriptor,Array List和Array将这些Object类型传递给Oracle。但是从Oracle检索数据时,我厌倦了各种混合和匹配,但没有工作。感谢是否有人可以通过示例代码帮助我。感谢。

1 个答案:

答案 0 :(得分:0)

你可以这样做

stmt.registerOutParameter(3, Types.ARRAY, "Output 3_OBJ");
stmt.execute();
Array array = stmt.getArray(3);