odciObjectlist
- это один из нескольких типов, принадлежащих Oracle, который мы можем использовать для создания наших собственных расширений для Oracle. Узнать больше
В частности SYS.odciObjectlist
- это массив типа SYS.odciObject
, предназначенный для хранения информации об объекте схемы - имени схемы, имени объекта.Тем не менее, конструктор довольно прост, и мы можем использовать odciObject
для хранения пар любой строки.
В случае вашего запроса, похоже, что кто-то создает коллекцию (?) Состояний (?)которые отображаются в виде таблицы с запросом с использованием функции table()
.Это дешевый способ генерирования набора результатов на лету, а не использование выбора из двойного и UNION ALL.
С помощью table()
мы можем взять любую коллекцию вложенных таблиц SQL и запросить ее в предложении FROM оператора SELECT с набором результатов, который имеет одну строку для каждого объекта в коллекции.Поэтому, если мы возьмем запрос, опубликованный в вашем вопросе, и исправим грамматику следующим образом ...
Select objectschema as id
,objectname as name
from table(SYS.odciObjectlist(
SYS.OdciObject('1','Appr')
,SYS.OdciObject('2','Pending')
)
)
... мы получим вывод:
ID NAME
---- ---------------------------------------------------------
1 Appr
2 Pending