Escolar Documentos
Profissional Documentos
Cultura Documentos
Tutorial PL SQL PDF
Tutorial PL SQL PDF
O PL/SQL uma linguagem procedural que roda diretamente no ncleo do SGBD Oracle.
O objetivo deste tutorial mostrar a criao de funes e procedimentos em PL/SQL, interagindo
com comandos SQL padres.
Vamos construir uma funo que calcula a mdia ponderada. Esta funo ter como
parmetros quatro valores numricos e ir retornar o calculado. Acompanhe a criao desta
funo:
return NUMBER
o valor de retorno da funo, ao final do seu processamento ela deve retornar a quem chamou
um nmero.
is
mp NUMBER;
Estamos declarando uma varivel de escopo local do tipo nmero para ser usada durante o
processo de calculo.
return mp;
INSERT INTO Tab_MP (n1, p1, n2, p2) VALUES (10, 1, 5, 2);
INSERT INTO Tab_MP (n1, p1, n2, p2) VALUES (6, 1, 8, 2);
INSERT INTO Tab_MP (n1, p1, n2, p2) VALUES (10, 1, 8, 2);
INSERT INTO Tab_MP (n1, p1, n2, p2) VALUES (1, 1, 7, 3);
d) Preencher os dados do atributo mp com o calculo atravs da funo MEDIA_PON:
Exerccio Proposto:
1) Crie uma funo que dado o nmero de minutos retorne o nmero de horas
correspondente.
2) Crie uma funo que dado um salrio retorne o nmero de salrios mnimos que a pessoa
ganha.
Resposta do Exerccio Proposto:
1)
2)
Controle de fluxo no PL/SQL:
A seqencial ou natural que executa os comandos de cima para baixo e da esquerda para
direita, sendo o ; o caractere que determina o fim de um comando.
E por fim temos a repetio que permite voltar no fluxo de execuo fazendo que
determinados passos sejam repetidos conforme uma condio de sada.
Deciso:
IF <CONDIO> THEN
Falso <BLOCO-VERDADEIRO>
ELSE
<BLOCO-FALSO>
END IF;
verdadeiro
return m;
end;
Exerccio Proposto:
Dado um salrio X calcule o salrio lquido, sendo que os descontos de IRPF ocorrem conforme a
tabela abaixo:
return imp_a_pagar;
end;
Repetio:
LOOP
[BLOCO-REPETIO]
EXIT WHEN <CONDIO>
[BLOCO-REPETIO]
END LOOP;
Falso
Verdadeiro
Exerccio Proposto
Sintaxe Geral:
DECLARE
CURSOR <NOME-CURSOR> IS <CONSULTA>;
<VARIAVEL-REGISTRO> <NOME-CURSOR>%ROWTYPE;
BEGIN
OPEN <NOME-CURSOR>;
LOOP
/* LGICA PERSONALIZADA
*/
END LOOP;
CLOSE <NOME-CURSOR>;
END;
Dada a seguinte tabela com os seguintes registros:
Desejamos ler registro a registro a tabela FUN e mostrar os funcionrios e seus salrios,
informando ainda se o salrio do mesmo acima ou abaixo da mdia: