Buscar

Handler - Cursor - Banco de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof. Thales Farias Duarte
Banco de Dados II
 
Handlers
● Esta instrução especifica handlers para lidar com uma 
ou mais condições. Se uma dessas condições ocorrer, 
a instrução especificada é executada.
● Para um handler CONTINUE, a execução das rotinas 
atuais continuam depois da instrução handler. Para um 
handler EXIT, a execução da rotina atual é terminada. 
 
Handlers
 
Cursor
● Cursores
● O cursor é uma instrução SELECT que será acessada linha 
a linha através de um laço While e alguns comandos 
específicos para cursores e é utilizado normalmente em 
procedimentos armazenados (stored procedures).
 
Cursor
 
Ordem da Declaração
 
Exemplo
CREATE FUNCTION Media() RETURNS double
BEGIN
DECLARE soma DOUBLE DEFAULT 0;
DECLARE n INTEGER DEFAULT 0;
DECLARE sal DOUBLE;
DECLARE cur CURSOR FOR SELECT f.salario FROM funcionarios f;
DECLARE EXIT HANDLER FOR NOT FOUND RETURN soma/n;
OPEN cur;
LOOP
FETCH cur INTO sal;
SET soma = soma+sal;
SET n = n+1;
END LOOP;
END
 
Exemplo
DELIMITER //
CREATE FUNCTION Media() RETURNS double
BEGIN
DECLARE soma DOUBLE DEFAULT 0;
DECLARE n INTEGER DEFAULT 0;
DECLARE sal DOUBLE;
DECLARE cur CURSOR FOR SELECT f.salario FROM funcionarios f;
DECLARE EXIT HANDLER FOR NOT FOUND RETURN soma/n;
OPEN cur;
LOOP
FETCH cur INTO sal;
SET soma = soma+sal;
SET n = n+1;
END LOOP;
END //
DELIMITER ;
 
Exemplo
CREATE PROCEDURE aumento()
BEGIN
DECLARE cod INTEGER;
DECLARE sal DECIMAL(9,2);
DECLARE fim BOOLEAN DEFAULT FALSE;
DECLARE cur CURSOR FOR SELECT f.codigo, f.salario FROM funcionarios f;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fim = TRUE;
OPEN cur;
daAumento: LOOP
FETCH cur INTO cod, sal;
IF fim THEN
LEAVE daAumento;
END IF;
UPDATE funcionarios SET salario = sal + 60 WHERE codigo = cod;
END LOOP;
END 
 
Exemplo
DELIMITER //
CREATE PROCEDURE aumento()
BEGIN
DECLARE cod INTEGER;
DECLARE sal DECIMAL(9,2);
DECLARE fim BOOLEAN DEFAULT FALSE;
DECLARE cur CURSOR FOR SELECT f.codigo, f.salario FROM funcionarios f;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fim = TRUE;
OPEN cur;
daAumento: LOOP
FETCH cur INTO cod, sal;
IF fim THEN
LEAVE daAumento;
END IF;
UPDATE funcionarios SET salario = sal + 60 WHERE codigo = cod;
END LOOP;
END //
DELIMITER ;
 
Exercícios
 Crie um procedimento que de um aumento de 10% 
para cada funcionários que possui mais de 5 
dependentes.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11

Continue navegando