0
votes

Évitez de choisir parmi Dual Union dans PL / SQL

J'ai ces données: xxx

J'ai besoin de convertir les données en un curseur o dans d'autres cas en utilisant sur un insert Ensuite, je le fais: xxx

existe une alternative à l'Union double à cet effet?

Merci d'avance!


1 commentaires

Même avec cette approche, vous pouvez utiliser union tout au lieu de Union puisque vous savez que toutes les valeurs sont distinctes.


3 Réponses :


3
votes

Vous pouvez utiliser une collection, par exemple: xxx

ou pour les versions plus anciennes d'oracle: xxx


4 commentaires

Est-ce qu'il court? Pour moi, je dois faire comme "Select * à partir de la table (sys.dbms_debug_vc2coll ('g'," h ");" à Oracle 19c


Ah, je suis sur 20c, alors ça slicker!


Sélectionnez * à partir de sys.dbms_debug_vc2coll ('A', 'B', 'B', 'C'); travaille pour moi en 19.0.0.


@ William Robertson: - Pour moi, je l'exécutais dans l'outil de développeur PL / SQL (13.0.6) Fenêtre SQL et faisait face à des problèmes (exécutant les résultats de la requête dans ORA-03114: non connecté à Oracle, après avoir vu votre commentaire que j'ai essayé Avec l'invite de commande SQL *, cela fonctionne bien et je ne sais pas pourquoi le problème avec l'IDE.



1
votes

Alternativement, avec beaucoup plus de dactylographie, en supposant que la liste des noms est - réellement - une chaîne em>, vous pouvez le diviser en rangées, puis insérer dans la table. Quelque chose comme ceci: xxx pré>


ou, si vous utilisez apex, son apex_string.split code> fait également le travail: p>

select column_value
from apex_string.split('DJORDAN,ADAVIS,MJONES,DPRESTOM,PSMITH', ',');


0 commentaires

2
votes

Encore une autre solution simple: xxx

résultat: xxx


0 commentaires