1
Я пытаюсь вернуть таблицу с помощью функции в пакете Oracle:Oracle пакет возвращения таблица
CREATE OR REPLACE PACKAGE test AS
TYPE rec IS RECORD(
col1 VARCHAR(10));
TYPE rec_table IS TABLE OF rec;
FUNCTION get_table(input VARCHAR2)
RETURN rec_table
PIPELINED;
END;
CREATE OR REPLACE PACKAGE BODY test AS
FUNCTION get_table(input VARCHAR2)
RETURN rec_table
PIPELINED IS
rec1 rec;
BEGIN
SELECT * INTO rec1
FROM
(
SELECT '1' from dual
UNION ALL
SELECT '2' from dual
);
PIPE ROW (rec1)
RETURN;
END get_table;
END;
, но когда я пытаюсь запустить
select * from table(test.get_table('blah'))
я получаю сообщение об ошибке: точная выборка возвращает более запрошенное количество строк
Я немного читал о BULK COLLECT INTO, но я не понимаю синтаксиса ...
Должен ли я объявлять v_rec как-то? – mrkb80
@ mrkb80 Нет, не следует - это делается автоматически для вас Oracle. –
работает как чемпион! – mrkb80