78 votes

Est-il possible de générer une instruction SELECT à partir d’un bloc PL/SQL ?

Comment puis-je obtenir un bloc PL/SQL pour produire les résultats d’une instruction de la même manière que si j’avais fait un simple?

Par exemple, comment faire un like `` :

Indice:

ne fonctionne pas.

47voto

Sergey Stadnik Points 1193

Cela dépend de ce pour quoi vous avez besoin du résultat.

Si vous êtes sûr qu’il n’y aura que 1 ligne, utilisez le curseur implicite :

Si vous souhaitez sélectionner plus de 1 ligne, vous pouvez utiliser un curseur explicite :

ou utilisez un autre type de curseur :

9voto

Igor Zelaya Points 2266

Créez une fonction dans un package et renvoyez un SYS_REFCURSOR :

8voto

David Aldridge Points 27624

D’un bloc anonyme ? J’aimerais maintenant en savoir plus sur la situation où vous pensez que cela est nécessaire, car avec les clauses d’affacturage de sous-requête et les vues en ligne, il est assez rare que vous ayez besoin de recourir à PL / SQL pour autre chose que les situations les plus complexes.

Si vous pouvez utiliser une procédure nommée, utilisez des fonctions redirigées. Voici un exemple tiré de la documentation :

5voto

Ahsan Habib Points 92

Si vous voulez voir sélectionner la sortie de requête dans pl/sql, vous devez utiliser un curseur explicite. Qui contiendra l’ensemble de données actif et en récupérant chaque ligne à la fois, il affichera tous les enregistrements de l’ensemble de données actif tant qu’il récupère l’enregistrement de l’ensemble de données en itérant en boucle. Ces données ne seront pas générées sous forme de tableau, mais au format texte brut. J’espère que cela vous sera utile. Pour toute autre question que vous pouvez demander....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X