2017-09-01 1 views
1

Je suis à la recherche d'une requête similaire à celle ci-dessous.Besoin d'aide dans Oracle requête varchar array

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

Sortie:

REGULAR 
AD 
PR 

PS: création de type est interdite dans notre 11g Oracle par DBA. L'utilisation de l'union est une option. Mais nous recherchons la liste des éléments de tableau dans la requête de sélection

Toutes les suggestions s'il vous plaît!

+0

Je sais qu'il est inutile de discuter avec un DBA mais, pour la record, leur interdiction est mal informée, mal orientée et contre-productive. N'hésitez pas à me citer :-) – APC

Répondre

1

Il y en a handy collection types already supplied by Oracle - par exemple, vous pouvez faire:

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

Merci pour votre réponse. Il résout mon problème ☺️ – Vicki

+0

Vous devriez probablement ajouter un [divulgation] (https://meta.stackoverflow.com/a/254283/1509264) à votre réponse que le lien va à votre propre blog. – MT0

0

Vous pouvez utiliser le type SYS.ODCIVARCHAR2LIST:

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

Merci pour votre réponse – Vicki