Возвращение таблицы из функции Oracle
Мы попытались решить многие проблемы, и они зашли довольно далеко, но теперь яЯ в сорняках на некоторых ошибках, которые я, кажется, не могу пройти.
Я на Oracle 11g. Мне нужна функция для возврата набора записей (таблица). Вот код, который ям с помощью:
CREATE TYPE T_TABLE IS OBJECT
(
Field1 int
, Field2 int
);
CREATE TYPE T_TABLE_COLL IS TABLE OF T_TABLE;
CREATE OR REPLACE FUNCTION FN_MyFunction
RETURN T_TABLE_COLL
IS
BEGIN
FOR I IN (SELECT Field1, Field2 FROM Table1) LOOP
IF I.Field1 = 1 THEN
BEGIN
INSERT INTO T_TABLE
SELECT Field1, Field2
FROM Table2
WHERE Field2 = I.Field2;
END;
ELSIF I.Field1 = 2 THEN
BEGIN
INSERT INTO T_TABLE
SELECT Field1, Field2
FROM Table2
WHERE Field2 = I.Field2;
END;
END IF;
END LOOP;
RETURN T_SMRYACCT_TABLE_COLL;
END;
Ошибки, которые я получаю от этого:
Оператор игнорируется в строке FUNCTION FN_MyFunction и PL / SQL: ORA-04044: процедура, функция, пакет или тип недопустимы в каждой строке INSERT INTO T_TABLE_COLL
PLS-00330: неверное использование имени типа или имени подтипа в строке RETURN
Что я делаю не так с типами таблиц?