SQL é uma das linguagens de programação mais recompensadoras e populares da atualidade. Neste tutorial, você aprenderá tudo sobre cursor em SQL. Vamos começar!
O que é um cursor em SQL?
Um cursor em SQL é uma iterativa definida pelo usuário variável que permite ao usuário acessar os resultados da consulta. Pode ser considerado um ponteiro que aponta para a área de contexto. Um cursor é usado pelo PL/SQL para navegar pela área de contexto. Ele contém as linhas que são retornadas por instruções SQL.
Um cursor é definido usando uma instrução DECLARE e tomando SELECT como parâmetro. Um cursor geralmente recebe um nome para que, no futuro, ele possa ser referido no programa para recuperar e executar as linhas retornadas por instruções SQL.
Tipos de cursores
Existem dois tipos de cursores-
-
Cursor implícito
Sempre que uma instrução DML como INSERT, UPDATE ou DELETE é executada, um cursor implícito é gerado por padrão, para processar essas instruções. Também é criado quando uma instrução SELECT retornando apenas uma única linha é executada. Como esses cursores são gerados automaticamente, esses cursores ou as informações neles contidas não podem ser controlados pelos usuários. Para verificar o estado dessas instruções DML, o Oracle fornece alguns atributos conhecidos como atributos de cursor implícitos, conforme fornecido a seguir.
Atributo |
Descrição |
% ENCONTRADO |
Retorna TRUE se a instrução DML foi executada com sucesso ou a instrução SELECT retorna uma ou mais linhas; caso contrário, retorna FALSE. |
% NOTFOUND |
É o oposto lógico do atributo acima. Retorna TRUE se nenhuma instrução foi executada ou nenhum registro foi buscado; caso contrário, retorna FALSE. |
% ISOPEN |
Retorna TRUE se o cursor estiver aberto, caso contrário, FALSE. O ponto a ser observado aqui é que um cursor implícito é fechado automaticamente pelo Oracle assim que a instrução associada a ele é executada. Portanto, neste caso, ele sempre retornará FALSE. |
% ROWCOUNT |
Retorna o número de afirmações do cursor por vez. |
Exemplo
Vamos considerar uma mesa chamada aluno, conforme mostrado abaixo.
Agora, usando o programa abaixo, vamos atualizar a tabela diminuindo o salário de cada um abaixo em 1000.
Aqui, o atributo% ROWCOUNT do Oracle foi usado para encontrar o número de linhas que foram atualizadas no banco de dados.
Resultado-
Agora, se virmos nossa tabela, as linhas foram atualizadas e o salário de cada funcionário foi reduzido em 1000.
-
Cursor explícito
Um cursor explícito é um cursor definido pelo programador que é criado quando estamos executando uma instrução SELECT que retorna mais de uma linha. Mesmo que o cursor armazene vários registros simultaneamente, apenas um pode ser processado por vez, que é conhecido como a linha atual. Este cursor é definido para obter controle extra sobre a área de contexto.
A sintaxe para definir um cursor explícito-
CURSOR cursor_name IS select_statement; |
Trabalhar com um cursor explícito não é o mesmo que trabalhar com um cursor implícito; alguns passos devem ser seguidos ao usar um cursor explícito. As etapas são definidas da seguinte forma;
-
Declarando o cursor
O cursor é declarado na seção DECLARE junto com a instrução SELECT associada.
Sintaxe-
CURSOR CURSORNAME IS SELECT…….; |
-
Abrindo o Cursor
O cursor é aberto na seção de execução e, ao fazer isso, aloca a memória para o cursor buscar as linhas retornadas pela instrução SQL.
Sintaxe-
ABRIR cursor_name; |
-
Buscando o Cursor
Esta operação envolve buscar os dados, acessando uma linha por vez.
Sintaxe-
FETCH cursor_name INTO record_name; |
-
Fechando o cursor
No final do bloco SQL, o cursor é fechado.
Sintaxe-
CLOSE cursor__name; |
Exemplo-
No código acima, declaramos o cursor como s_student, e é usado para buscar o id, nome e endereço de cada aluno no banco de dados.
Saída
Como criar um cursor?
Um cursor em SQL pode ser criado usando o método acima, seguindo as quatro etapas, ou também podemos usar o FOR LOOP para trabalhar com o cursor, fornecendo o nome do cursor em vez do limite do intervalo na instrução for loop. Isso fará com que o loop for execute do primeiro registro do cursor até o último registro do cursor. O loop FOR executará a variável do cursor, a abertura do cursor, a busca do cursor e o fechamento do cursor implicitamente.
Sintaxe-
DECLARAR CURSOR BEGIN PARA I IN LOOP . . END LOOP; END; |
Exemplo-
Aqui, o cursor é criado como student_s. A variável de loop for é denominada lv_s_name. O código acima imprime o nome do aluno em cada iteração do loop for.
Saída
Ciclo de vida do cursor
O ciclo de vida de um cursor tem cinco etapas abaixo:
-
Declaração do cursor
A instrução SQL é usada para declarar um cursor.
-
Abertura do cursor
Um cursor é aberto para armazenar dados da coleção de resultados.
-
Busca do cursor
Quando um cursor é aberto, as linhas podem ser buscadas uma de cada vez ou em um bloco para realizar a manipulação de dados.
-
Fechamento do cursor
Após a manipulação dos dados, o cursor deve ser travado diretamente.
-
Desalocação do cursor
Os cursores podem ser desalocados para apagar a descrição do cursor e liberar todos os recursos associados a ele.
Ganhe experiência nas mais recentes ferramentas e técnicas de análise de negócios com o Programa de certificação de analista de negócios . Inscreva-se agora!
Conclusão
Portanto, neste tutorial de cursor em SQL, cobrimos tudo, desde o que é um cursor em SQL até a diferença entre cursores implícitos e explícitos, até a criação de um cursor em SQL para o ciclo de vida do cursor também!
Se você deseja aprender o AZ do SQL, Treinamento de certificação em SQL da Simplilearn deve ser sua próxima parada. E se você tiver alguma dúvida relacionada ao cursor no SQL, sinta-se à vontade para soltá-la na seção de comentários e nossos especialistas responderão para você.