Возвращение таблицы из функции 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

Что я делаю не так с типами таблиц?

Ответы на вопрос(1)

Ваш ответ на вопрос