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_name cujo 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 INTO para selecionar o valor da coluna de nome e atribuí-lo ao l_customer_name variá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 customers mesa. Este registro conterá toda a linha da customers tabela.
  • Em segundo lugar, selecione o cliente cujo id é 100 na r_customer registro.
  • 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_name para manter o nome do cliente e do contato.
  • Em segundo lugar, use a instrução SELECT INTO para buscar nomes de clientes e de contato do ID de cliente 100 de customers e contacts tabelas 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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *