Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Declarando uma variável e definindo seu valor a partir de uma consulta SELECT no Oracle


SELECIONE EM
DECLARE
   the_variable NUMBER;

BEGIN
   SELECT my_column INTO the_variable FROM my_table;
END;

Certifique-se de que a consulta retorne apenas uma única linha:

Por padrão, uma instrução SELECT INTO deve retornar apenas uma linha. Caso contrário, o PL/SQL gera a exceção predefinida TOO_MANY_ROWS e os valores das variáveis ​​na cláusula INTO são indefinidos. Certifique-se de que sua cláusula WHERE seja específica o suficiente para corresponder apenas a uma linha

Se nenhuma linha for retornada, PL/SQL gera NO_DATA_FOUND. Você pode se proteger contra essa exceção selecionando o resultado de uma função agregada, como COUNT(*) ou AVG(), quando possível. Essas funções garantem o retorno de um único valor, mesmo que nenhuma linha corresponda à condição.

Uma instrução SELECT ... BULK COLLECT INTO pode retornar várias linhas. Você deve configurar variáveis ​​de coleção para manter os resultados. Você pode declarar matrizes associativas ou tabelas aninhadas que crescem conforme necessário para conter todo o conjunto de resultados.

O cursor implícito SQL e seus atributos %NOTFOUND, %FOUND, %ROWCOUNT e %ISOPEN fornecem informações sobre a execução de uma instrução SELECT INTO.