Você está na página 1de 14

Linguagem

Procedural
Procedures

PROF. Ms. J FLÁVIO VASCONCELOS ALVES


ASSUNTOS AULA 7

1) Procedures (Procedimentos)

Obs: Efetuar cadastro em


https://livesql.oracle.com/

2
PROCEDURES p1

Um procedimento é um conjunto de instruções


que realiza determinada tarefa. A definição e o
funcionamento dos procedimentos são similares à
programação em outras linguagens e envolvem
basicamente os seguintes passos:
• Identificação do procedimento.
• Definição do parâmetro.
• Conjunto de instruções do procedimento .
• Submissão do código ao GBDR
.

(PUGA;FRANÇA; GOAYA, 2013)


PROCEDURES p2

Sendo assim o código fonte é armazenado


no DD (pode-se consultar a USER_
SOURCE) e o procedimento é compilado.
Se a compilação for bem-sucedida , o p-code
é armazenado no DD e não poderá ser
consultado.

Caso ocorram erros de compilação, esses


serão armazenados na view
USER.....ERRORS.

(PUGA;FRANÇA; GOAYA, 2013)


NOTAÇÃO GERAL

(PUGA;FRANÇA; GOAYA, 2013)


ELEMENTOS e FUNCIONALIDADES

(PUGA;FRANÇA; GOAYA, 2013)


PL/SQL – exemplo banco de dados

create table cliente(


cod_cli number(10)not null,
nome_cli varchar2(10),
perfil_cli varchar2(1))

SELECT * from cliente;


INSERT INTO cliente VALUES (1,’Pedro‘,’I’);
INSERT INTO cliente VALUES (2,’Joao’ ,’I’);
INSERT INTO cliente VALUES (3,’Neto’ ,’I’);
SELECT * from cliente;

(PUGA;FRANÇA; GOAYA, 2013)


Exemplo 1 PROCEDURE at_perfil

CREATE OR REPLACE PROCEDURE at_perfil( v_codcli


cliente.cod_cli%type)
IS
codcli_invalido EXCEPTION;
begin
UPDATE cliente SET perfil_cli = 'A' WHERE cod_cli =
v_codcli;
IF sql%notfound THEN
RAISE codcli_invalido;
END IF;
EXCEPTION
WHEN codcli_invalido THEN
dbms_output.put_line('Codigo cliente nao existe.
Nao foi possível atualizar o perfil.');
end;
8

(PUGA;FRANÇA; GOAYA, 2013)


CHAMAMENTO DA PROCEDURE p1

Se a compilação do bloco for bem sucedida.


será exibida a mensagem 'Procedimento cri
ado' . Se ocorrerem erros durante a
compilação, a mensagem ‘Procedimento
concluído com erros ' será apresentada.
Para exibir a lista de erros, basta digitar a
instrução SHOW ERROS. O procedimento
poderá ser chamado a partir de outros
procedimentos , funções, blocos anônimos
ou diretamente a partir da SQL.

(PUGA;FRANÇA; GOAYA, 2013)


CHAMAMENTO DA PROCEDURE p2

SQL> EXECUTE at_perfil(2);


Procedimento PL/SQL concluído com
sucesso

SQL> select * from cliente;

SQL> EXECUTE at_perfil(4);


Statement processed.
Codigo cliente nao existe. Nao foi possível
atualizar o perfil.

10

(PUGA;FRANÇA; GOAYA, 2013)


Exemplo 2 PROCEDURE formata

CREATE OR REPLACE PROCEDURE


formata_numero_fone( p_numero_fone IN OUT
VARCHAR2)
IS
begin
p_numero_fone := '(' || substr(p_numero_fone, 1,3) || ')' ||
substr(p_numero_fone, 4,5) || '-' || substr(p_numero_fone,
9);
end;

11

(PUGA;FRANÇA; GOAYA, 2013)


CHAMAMENTO DA PROCEDURE p2

DECLARE
numero_fone varchar2(16):=‘085997502901';
Begin
formata_numero_fone(numero_fone);
dbms_output.put_line(numero_fone);
End;

12

(PUGA;FRANÇA; GOAYA, 2013)


EXCLUSÃO DA PROCEDURE

SQL> DROP PROCEDURE at_perfil;


Procedimento PL/SQL excluído com sucesso

13

(PUGA;FRANÇA; GOAYA, 2013)


MODIFICANDO DONO ou GRUPO

OBRIGADO !!!
ZAP 9750-2901
@profjsflavioalves

14

Você também pode gostar