Мне нужно, чтобы EXECUTE IMMEDIATE возвращал свои результаты в табличный тип (AS TABLE OF)
Если немедленное выполнение возвращает одно значение, я могу сохранить результат, используя INTO somevariable
Но, мой немедленный запуск вернет таблицу с несколькими столбцами, и никакие гугли не помогут мне разобраться!
Сначала я создаю типы
CREATE OR REPLACE TYPE T_VALIDITY_RECORD AS OBJECT (
TIME_COL DATE,
VALUE_COL NUMBER
);
/
CREATE OR REPLACE TYPE T_VALIDITY_TABLE AS TABLE OF T_VALIDITY_RECORD;
/
Затем я пытаюськод
DECLARE
RET_TABLE T_VALIDITY_TABLE;
BEGIN
EXECUTE IMMEDIATE 'SELECT my_date,
my_numbers
FROM my_table
WHERE somthing = somthingelse' INTO RET_TABLE;
END;
Это просто упрощенный пример, реальный код делает (будет делать другие вещи)
Я пробовал разные вещи, такие как BULK COLLECT INTO и т. д., но не могупохоже, он работает.
Я получаю следующую ошибку:
Отчет об ошибке
ORA-00932: несовместимые типы данных: ожидается - получил -
ORA-06512: в строке 5
00932. 00000 - "несовместимые типы данных: ожидается% s получено% s"
* Причина:
* Действие: