2017-09-01 18 views
1

我在查找类似于下面的查询。Oracle中需要帮助cast varchar array查询

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。 使用联合是一种选择。但我们正在寻找在选择查询中的数组元素列表

请任何建议!

+0

我知道有一个小点与DBA争论,但是,对于记录,他们的禁止是不知情的,误导和相反的。随意引用我:-) – APC

回答

1

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

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

感谢您的回复。它解决了我的问题☺️ – Vicki

+0

您应该添加一个[披露](https://meta.stackoverflow.com/a/254283/1509264)到您的答案,该链接发送到您自己的博客。 – MT0

0

可以使用SYS.ODCIVARCHAR2LIST类型:

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

感谢您的回复 – Vicki