Bonjour à tous,
Je me demande comment pouvoir écrire une requête paramétrée sous oracle.
J'aimerais pouvoir faire un select sur une table dont je passe le nom en paramètre ainsi que la colonne.
Est-ce réalisable ?
Version imprimable
Bonjour à tous,
Je me demande comment pouvoir écrire une requête paramétrée sous oracle.
J'aimerais pouvoir faire un select sur une table dont je passe le nom en paramètre ainsi que la colonne.
Est-ce réalisable ?
Il faut utiliser un REF CURSOR. Voir l'exemple Recherche globale d’une chaîne de caractères dans les colonnes d’ une table donnée dans le tutoriel PL/SQL.
Ou faire du SQL dynamique (EXECUTE IMMEDIATE)
:recherch:
EXECUTE IMMEDIATE permet en effet d'exécuter un SELECT si le SELECT retourne 0 ou 1 ligne mais ne permet pas de traiter des requêtes qui retournent plusieurs lignes.
Ou DBMS_SQL :mouarf:
Super merci :king:
Exactement ce que je cherchais
Si, avec la clause bulk collect into ;)Citation:
Envoyé par pifor
:oops: Et c'est possible depuis la version 9i:
Citation:
Enhancements to Bulk Operations
You can now perform bulk SQL operations, such as bulk fetches, using native dynamic SQL (the EXECUTE IMMEDIATE statement). You can perform bulk insert or update operations that continue despite errors on some rows, then examine the problems after the operation is complete.