Oracle VARRAY如何用Java术语表示数据?

时间:2010-10-20 13:48:21

标签: java arrays oracle varray

这里有一个稍微宽泛的问题,但这里有

我正在尝试调用Oracle存储过程,它返回一个VARRAY,它是从我的一个表上的ROWTYPE构造的。为简单起见,我们假设此表如下所示:

MY_TABLE
ID   VALUE
-----------
1    John
2    Dave

所以我将调用一个返回以下VARRAY类型的SP:

CREATE OR REPLACE TYPE param_array is VARRAY(100) OF MY_TABLE%ROWTYPE;

根据Oracle Documentation,您可以将其提取为数组,但我的问题是:数组的类型是什么,是字符串数组,名称/值配对字符串等吗

我正在创建一些Java代码来从这个数组中获取数据,但我不确定它将采用哪种格式,例如1John1=John1,John

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

来自文档:

SQL>CREATE OR REPLACE TYPE EMPARRAY is VARRAY(20) OF VARCHAR2(30)
SQL>/

然后创建以下函数,返回VARRAY。

CREATE OR REPLACE FUNCTION getEmpArray RETURN EMPARRAY
AS
  l_data EmpArray := EmpArray();
  CURSOR c_emp IS SELECT ename FROM EMP;
  BEGIN
    FOR emp_rec IN c_emp LOOP
      l_data.extend;
      l_data(l_data.count) := emp_rec.ename;
    END LOOP;
    RETURN l_data;
  END;

它将返回一个字符串数组(VARCHAR),最大长度为30 它返回emparray,它被声明为varchars(strings)的varray