Oracle
 sql >> Database >  >> RDS >> Oracle

Dichiarazione di una variabile e impostazione del suo valore da una query SELECT in Oracle

SELEZIONA IN

DECLARE
   the_variable NUMBER;

BEGIN
   SELECT my_column INTO the_variable FROM my_table;
END;

Assicurati che la query restituisca solo una singola riga:

Per impostazione predefinita, un'istruzione SELECT INTO deve restituire solo una riga. In caso contrario, PL/SQL solleva l'eccezione predefinita TOO_MANY_ROWS ei valori delle variabili nella clausola INTO non sono definiti. Assicurati che la tua clausola WHERE sia sufficientemente specifica da corrispondere a una sola riga

Se non vengono restituite righe, PL/SQL genera NO_DATA_FOUND. Puoi proteggerti da questa eccezione selezionando il risultato di una funzione aggregata, come COUNT(*) o AVG(), ove possibile. È garantito che queste funzioni restituiscano un singolo valore, anche se nessuna riga soddisfa la condizione.

Un'istruzione SELECT ... BULK COLLECT INTO può restituire più righe. È necessario impostare le variabili di raccolta per contenere i risultati. Puoi dichiarare array associativi o tabelle nidificate che crescono secondo necessità per contenere l'intero set di risultati.

Il cursore implicito SQL e i suoi attributi %NOTFOUND, %FOUND, %ROWCOUNT e %ISOPEN forniscono informazioni sull'esecuzione di un'istruzione SELECT INTO.