Анонимный тип TABLE или VARRAY в Oracle

В Oracle я иногда хотел бы создавать конструкции, подобные этим

SELECT * FROM TABLE(STRINGS('a', 'b', 'c'))
SELECT * FROM TABLE(NUMBERS(1, 2, 3))

Очевидно, я могу объявить мои собственные типы для вышеупомянутого. Я могу выбирать между ТАБЛИЦА и VARRAY . Например:

CREATE TYPE STRINGS AS TABLE OF VARCHAR2(100);
CREATE TYPE NUMBERS AS VARRAY(100) OF NUMBER(10);

В этом конкретном случае другое решение - написать такие вещи, как

SELECT 'a' FROM DUAL UNION ALL
SELECT 'b' FROM DUAL UNION ALL
SELECT 'c' FROM DUAL

Но у меня могут быть более сложные примеры, где мне действительно понадобится тип TABLE / VARRAY . Так что, если мой SQL работает в неизвестной системе, где я не могу создавать типы, потому что у меня может не быть необходимых грантов?

Итак, мой вопрос: Знает ли Oracle «анонимный» ТАБЛИЦА / Типы VARRAY , доступные в любом экземпляре Oracle? Подобно простому типу ARRAY Postgres / H2 / HSQLDB?

ОБНОВЛЕНИЕ : Я в основном запускаю этот SQL из Java, если это актуально. Нет необходимости объяснять мне PL / SQL, я просто ищу анонимные типы массивов SQL (т.е. «анонимные» автономные хранимые типы ). Если их вообще нет, ответ будет NO

19
задан Lukas Eder 9 January 2012 в 12:19
поделиться