PL / SQL SELECT INTO (Português)
Resumo: neste tutorial, você aprenderá como usar a PL / SQL SELECT INTO para buscar dados de uma única linha de uma tabela em variáveis.
A declaração PL / SQL SELECT INTO é a maneira mais simples e rápida de buscar uma única linha de uma tabela em variáveis. O seguinte ilustra a sintaxe da instrução PL / SQL SELECT INTO:
Nesta sintaxe, o número de colunas em variable_list devem ser iguais ao número de variáveis (ou o número de componentes de um registro) em select_list. Além disso, seus tipos de dados correspondentes devem ser compatíveis.
Além da cláusula WHERE, você pode usar outras cláusulas na SELECT declaração como INNER JOIN, GROUP BY, HAVING e UNION.
Se a instrução SELECT retornar mais de uma linha, o Oracle levantará o TOO_MANY_ROWS exceção. Se a instrução SELECT não retornar nenhuma linha, o Oracle levantará a NO_DATA_FOUND exceção.
PL / SQL SELECT Exemplos INTO
Vamos usar as tabelas customers e contacts no banco de dados de amostra para demonstração.
A) PL / SQL SELECT INTO – selecionando um exemplo de coluna
O exemplo a seguir usa uma instrução SELECT INTO para obter o nome de um cliente com base no ID do cliente, que é a chave primária do customers tabela.
Neste exemplo:
- Primeiro, declare uma variável
l_customer_namecujo tipo de dados âncoras para as colunas de nome da tabela de clientes. Esta variável conterá o nome do cliente. - Em segundo lugar, use a instrução
SELECT INTOpara selecionar o valor da coluna de nome e atribuí-lo aol_customer_namevariável. - Terceiro, mostre o nome do cliente usando o procedimento
dbms_output.put_line.
Porque o customers a tabela tem apenas uma linha com ID de cliente 100, o bloco de código exibiu o nome do cliente.
Se não houvesse tal linha, o bloco de código falharia com uma exceção NO_DATA_FOUND não tratada.
B) PL / SQL SELECT INTO – selecionando um exemplo de linha completo
O exemplo a seguir busca a linha inteira da tabela customers para um ID de cliente específico:
Aqui está a saída:
Neste exemplo:
- Primeiro, declare um registro com base na linha do
customersmesa. Este registro conterá toda a linha dacustomerstabela. - Em segundo lugar, selecione o cliente cujo id é 100 na
r_customerregistro. - Terceiro, mostre o nome e o site do cliente.
C) PL / SQL SELECT INTO – selecionando dados em um exemplo de múltiplas variáveis
O exemplo a seguir busca os nomes do cliente e do contato nas tabelas customers e contacts para um ID de cliente específico.
A Oracle emitiu a seguinte saída:
Neste exemplo:
- Primeiro, declare três variáveis
l_customer_name,l_contact_first_name,l_contact_last_namepara manter o nome do cliente e do contato. - Em segundo lugar, use a instrução
SELECT INTOpara buscar nomes de clientes e de contato do ID de cliente 100 decustomersecontactstabelas nas variáveis correspondentes -
l_customer_name,l_contact_first_name,l_contact_last_name. - Terceiro, exiba o clientes e nomes de contato.
PL / SQL SELECT INTO erros comuns
Se o número de colunas e expressão no SELECT cláusula é maior do que o número de variáveis na cláusula INTO, o Oracle emite este erro:
Oracle emite o seguinte erro se o número de colunas e expressão na cláusula SELECT for menor que o número de variáveis na cláusula INTO:
Se o número de variáveis e elementos na lista de seleção são os mesmos, mas seus tipos de dados correspondentes não são compatíveis, de modo que o Oracle não pode converter implicitamente de um tipo para o outro. Ele emitirá o seguinte erro:
Agora, você deve saber como usar o PL / SQL SELECT INTO para buscar uma única linha de uma tabela em variáveis.
- Este tutorial foi útil?
- Sim Não