Introdução à Linguagem PL/SQL - Parte 3

Stored Procedures

Consiste em uma sub-rotina, trata-se de uma seqüência de instruções do programa que executam uma tarefa específica, embalados como uma unidade. Esta unidade pode então ser utilizada em programas de onde quer que determinada tarefa deve ser realizada. A procedure é executada através do comando EXEC.

Exemplo de trigger para auditoria em tabela do banco de dados:

set serveroutput on;
	
	create or replace procedure obterpessoa(vidpessoa in number)
	is
	begin
	    --CURSOR
	    for registro in(select * from pessoa where idpessoa = vidpessoa)
	    loop		
		dbms_output.put_line('IdPessoa...: ' || registro.idpessoa);
		dbms_output.put_line('Nome.......: ' || registro.nome);
	    end loop;	
	end;
	/
	
	exec obterpessoa(1);    

Declarando variáveis

Variáveis podem ter qualquer tipo de dados SQL, como CHAR , DATE , ou NUMBER , ou qualquer tipo de dados PL / SQL, como BOOLEAN ou BINARY_INTEGER.

Você pode atribuir valores a uma variável de três maneiras. A primeira forma usa o operador de atribuição ( := ), dois pontos seguidos por um sinal de igual.

Exemplo:

numero number(5) := 0;    

A segunda maneira de atribuir valores a uma variável é selecionando os valores do banco de dados para a variável.

Exemplo:

select seqexemplo.nextval into numero from dual;    

A terceira maneira de atribuir valores a uma variável é passá-lo como um OUT ou IN para um subprograma.

Exemplo:

create or replace procedure pessoaporid(vidpessoa in number, vnome out varchar2)
	is
	begin
		for p in(select * from pessoa)
		loop

			if(p.idpessoa = vidpessoa)
			then
				vnome := p.nome;
				exit;
			end if;	

		end loop;
	end;
	/	

	--variavel global no oracle
	var resultado varchar2(25);
	
	exec pessoaporid(4, :resultado);	
	print resultado;