2017-09-01 29 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