Как Oracle VARRAY представляет данные в терминах Java? - PullRequest
0 голосов
/ 20 октября 2010

Немного широкий вопрос здесь, но здесь идет

Я пытаюсь вызвать хранимую процедуру Oracle, которая возвращает VARRAY, созданный из ROWTYPE на одной из моих таблиц.Для простоты предположим, что эта таблица выглядит следующим образом:

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

, поэтому я назову SP, который возвращает следующий тип VARRAY:

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

В соответствии с OracleДокументация , вы можете извлечь это как массив, но мой вопрос: каким будет тип массива, это массив строк, имя / значение, парные строки и т. Д.?

Я создаю некоторый код Java, который будет извлекать данные из этого массива, но я не уверен, какой это будет формат, например 1, John ИЛИ 1=John или 1,John

Есть идеи?

1 Ответ

1 голос
/ 20 октября 2010

Из документов:

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, который объявлен как varray varchars (строк)

...