在Oracle cast varchar数组查询中需要帮助

时间:2017-09-01 11:38:53

标签: sql arrays oracle casting union

我正在寻找类似下面的查询。

SELECT  ROWNUM rnum,COLUMN_VALUE as dl
FROM    TABLE(CAST(varc('REGULAR','AD','PR') is varray(3) of varchar2(100)))

输出:

REGULAR 
AD
PR

PS:DBA不允许在我们的oracle 11g中创建类型。 使用union是一种选择。但我们正在寻找选择查询中的数组元素列表

请提出任何建议!

2 个答案:

答案 0 :(得分:1)

有一些handy collection types already supplied by Oracle - 例如你可以这样做:

select column_value
from table(SYS.DBMS_DEBUG_VC2COLL('REGULAR','AD','PR'));

答案 1 :(得分:0)

您可以使用SYS.ODCIVARCHAR2LIST类型:

SELECT ROWNUM,
       COLUMN_VALUE
FROM   TABLE( SYS.ODCIVARCHAR2LIST( 'REGULAR', 'AD', 'PR' ) );