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 aol_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 dacustomers
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 decustomers
econtacts
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