Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

CIÊNCIA DA 
COMPUTAÇÃO
AULA 09
LINGUAGEM DE PROGRAMAÇÃO DE 
BANCO DE DADOS
1
Decio
2
• Um cursor funciona como um conjunto de dados que mantém uma posição atual, 
à medida que o conjunto de resultados é percorrido;
• Um cursor permite iterar um conjunto de linhas retornadas por uma consulta e 
processar, individualmente, cada linha;
• Usar um cursor é como utilizar uma variável:
1) declare,
2) atribua um valor,
3) use-o.
No entanto, é preciso liberar, explicitamente, a variável utilizada pelo cursor
• Um cursor é somente leitura, não-rolável e assensível.
O que são Cursores no SQL
3
Exemplo
4
• Declarar o cursor:
• DECLARE nome_cursor CURSOR FOR comando_select
• 2. Abrir o cursor:
• OPEN nome_cursor
• 3. Usar o cursor:
• FETCH nome_cursor INTO lista_de_variáveis
• 4. Fechar o cursor para liberar memória:
• CLOSE nome_cursor
O que são Cursores no SQL
5
Exemplo
6
Exemplo
7
Exemplo
Um cursor é um ponteiro para esta área de contexto. PL/SQL controla a área de
contexto por meio de um cursor. Um cursor mantém as linhas (uma ou mais)
retornadas por uma instrução SQL.
O conjunto de linhas que o cursor mantém é chamado de conjunto ativo.
Para manipular um conjunto de resultados dentro de um procedimento
armazenado, você usa um cursor. Um cursor permite que você itere um
conjunto de linhas retornadas por uma consulta e processe cada linha
adequadamente
Cursores no SQL
Os programadores não podem controlar os cursores implícitos e as informações neles.
Cursor implícito é associado às seguintes instruções DML
• INSERT,
• UPDATE e
• DELETE
Em PL/SQL, você pode se referir ao cursor implícito mais recente como o cursor SQL, que
sempre tem atributos como
• %FOUND,
• %ISOPEN,
• %NOTFOUND e
• %ROWCOUNT.
Cursor implícito
• Cursores explícitos são cursores definidos pelo programador para obter 
mais controle sobre a área de contexto.
• Um cursor explícito deve ser definido na seção de declaração do Bloco 
PL/SQL.
• Ele é criado em uma Instrução SELECT que retorna mais de uma linha.
• Trabalhar com um cursor explícito inclui as seguintes etapas −
1. Declarar o cursor para inicializar a memória
2. Abrir o cursor para alocar a memória
3. Buscar o cursor para recuperar os dados
4. Fechar o cursor para liberar a memória alocada
Cursor explícito
Tipos de cursor no MySQL
• Somente leitura: você não pode atualizar dados na tabela 
subjacente por meio do cursor.
• Não rolável: você só pode buscar linhas na ordem determinada 
pela instrução SELECT. Você não pode buscar linhas na ordem 
inversa.
Além disso, você não pode pular linhas ou pular para uma linha 
específica no conjunto de resultados.
Tipos de cursor
Existem dois tipos de cursores: cursor Asensitive e cursor Insensitive.
Um cursor asensitive aponta para os dados reais, enquanto um cursor
insensitive usa uma cópia temporária dos dados.
Um cursor asensitive tem um desempenho mais rápido do que um cursor
insensitive porque não precisa fazer uma cópia temporária dos dados.
No entanto, qualquer alteração feita nos dados de outras conexões afetará
os dados que estão sendo usados ​​por um cursor asensitive, portanto, é
mais seguro se você não atualizar os dados que estão sendo usados ​​por um
cursor asensitive.
O cursor MySQL é asensitive.
Tipos de cursor
Passos para usar Cursor
1. Declare cursor
2. Open cursor
3. Loop
4. Fetch data from cursor
5. Exit loop
6. Close cursor 
DECLARE statement
• Sintaxe
DECLARE cursor_name CURSOR FOR SELECT_statement;
• Explicação
• A declaração do cursor deve estar após qualquer declaração 
de variável
• Um cursor deve sempre ser associado a uma SELECT
Instrução OPEN
• Sintaxe
OPEN cursor_name;
• Explicação
• A instrução OPEN inicializa o conjunto de resultados para o 
cursor, portanto, você deve chamar a instrução OPEN antes de 
buscar linhas do conjunto de resultados
LOOP statement
• Sintaxe
[nome_rótulo :] LOOP
lista_de_instruções
END LOOP [nome_rótulo]
• Explicação
• O loop LOOP depende do posicionamento cuidadoso da instrução 
LEAVE para encerrar a iteração
Declaração FETCH
•Sintaxe
FETCH cursor_name INTO variables list;
• Explicação
• Usamos a declaração FETCH para recuperar a próxima linha 
apontada pelo cursor e mover o cursor para a próxima linha 
no conjunto de resultados.
Declaração CLOSE
• Sintaxe
CLOSE cursor_name;
• Explicação
• Finalmente, você chama a declaração CLOSE para 
desativar o cursor e liberar a memória associada a ele
Handler NOT FOUND
Ao trabalhar com o cursor MySQL, você também deve declarar 
um manipulador NOT FOUND para lidar com a situação quando 
o cursor não consegue encontrar nenhuma linha. Porque cada 
vez que você chama a instrução FETCH, o cursor tenta ler a 
próxima linha no conjunto de resultados. Quando o cursor atinge 
o final do conjunto de resultados, ele não consegue obter os 
dados, e uma condição é levantada. O manipulador é usado para 
lidar com essa condição
NOT FOUND handler
•Syntax
DECLARE CONTINUE HANDLER 
FOR NOT FOUND 
SET exit_loop = TRUE
• Explicação
Onde finished é uma variável para indicar que o cursor alcançou o fim do
conjunto de resultados. Observe que a declaração do manipulador deve aparecer
após a declaração da variável e do cursor dentro dos procedimentos
armazenados.
MySQL cursor working
22
Exemplo
23
Exemplo
24
Exemplo
25
Exemplo
Dada a tabela a seguir faça um programa em SQL, que crie um
cursor que leia os salários de todos os funcionários e mostre o total
de salários acumulados
Exercício

Mais conteúdos dessa disciplina