Oracle
 sql >> Base de données >  >> RDS >> Oracle

Déclarer une variable et définir sa valeur à partir d'une requête SELECT dans Oracle

SÉLECTIONNER DANS

DECLARE
   the_variable NUMBER;

BEGIN
   SELECT my_column INTO the_variable FROM my_table;
END;

Assurez-vous que la requête ne renvoie qu'une seule ligne :

Par défaut, une instruction SELECT INTO ne doit renvoyer qu'une seule ligne. Sinon, PL/SQL déclenche l'exception prédéfinie TOO_MANY_ROWS et les valeurs des variables de la clause INTO sont indéfinies. Assurez-vous que votre clause WHERE est suffisamment spécifique pour ne correspondre qu'à une seule ligne

Si aucune ligne n'est renvoyée, PL/SQL lève NO_DATA_FOUND. Vous pouvez vous prémunir contre cette exception en sélectionnant le résultat d'une fonction d'agrégation, telle que COUNT(*) ou AVG(), si possible. Ces fonctions sont garanties de renvoyer une valeur unique, même si aucune ligne ne correspond à la condition.

Une instruction SELECT ... BULK COLLECT INTO peut renvoyer plusieurs lignes. Vous devez configurer des variables de collection pour contenir les résultats. Vous pouvez déclarer des tableaux associatifs ou des tableaux imbriqués qui s'agrandissent au besoin pour contenir l'ensemble des résultats.

Le curseur implicite SQL et ses attributs %NOTFOUND, %FOUND, %ROWCOUNT et %ISOPEN fournissent des informations sur l'exécution d'une instruction SELECT INTO.