Как Oracle VARRAY представляет данные в терминах Java?
Немного широкий вопрос здесь, но здесь идет
Я пытаюсь вызвать хранимую процедуру 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 ответ
Из документов:
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 of varchars (strings)