sql >> Base de Datos >  >> RDS >> Oracle

Declarar una variable y establecer su valor a partir de una consulta SELECT en Oracle

SELECCIONAR EN

DECLARE
   the_variable NUMBER;

BEGIN
   SELECT my_column INTO the_variable FROM my_table;
END;

Asegúrese de que la consulta solo devuelva una sola fila:

De forma predeterminada, una declaración SELECT INTO debe devolver solo una fila. De lo contrario, PL/SQL genera la excepción predefinida TOO_MANY_ROWS y los valores de las variables en la cláusula INTO no están definidos. Asegúrese de que su cláusula WHERE sea lo suficientemente específica como para coincidir solo con una fila

Si no se devuelven filas, PL/SQL genera NO_DATA_FOUND. Puede protegerse contra esta excepción seleccionando el resultado de una función agregada, como COUNT(*) o AVG(), donde sea práctico. Se garantiza que estas funciones devolverán un solo valor, incluso si ninguna fila coincide con la condición.

Una declaración SELECT ... BULK COLLECT INTO puede devolver varias filas. Debe configurar variables de colección para contener los resultados. Puede declarar matrices asociativas o tablas anidadas que crezcan según sea necesario para contener todo el conjunto de resultados.

El SQL de cursor implícito y sus atributos %NOTFOUND, %FOUND, %ROWCOUNT y %ISOPEN brindan información sobre la ejecución de una instrucción SELECT INTO.