Chamando uma procedure com parametro OUT

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Boa tarde pessoa.

Estou chamando uma procedure passando alguns parametros, só que ela tem dois parametros OUT. como eu a chamo com esses outros dois?

EX:

Selecionar tudo

exec proc_teste('NOME',12,'END',out,out);
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Vê se dá uma ajuda, este código abaixo:

Selecionar tudo

DECLARE 
  v1 VARCHAR2(50) := NULL;
  v2 VARCHAR2(50) := NULL;
PROCEDURE prc_formata (p_telefone IN NUMBER, 
                       p_t1       OUT VARCHAR2,
							  p_t2       OUT VARCHAR2)
IS
  v_retorno1 VARCHAR2(50);
  v_retorno2 VARCHAR2(50);
BEGIN
  
  v_retorno1 := SUBSTR(p_telefone,1,3);
  v_retorno2 := SUBSTR(p_telefone,4,3);
  
  p_t1 := v_retorno1;
  p_t2 := v_retorno2;  
  
END prc_formata;

BEGIN
  prc_formata(12345678,v1,v2); 
  dbms_output.put_line('Retorno v1: ' || v1);
  dbms_output.put_line('Retorno v2: ' || v2);
END;

Fiz meio simples, mais pra ilustrar os OUTs mesmo.

qualquer coisa, manda ai.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Complementando:
No SQL*Plus dá pra fazer sem usar bloco PL/SQL.
Veja o exemplo:

Selecionar tudo

SQL> create procedure t (variavel out number)
  2  is 
  3  begin
  4    variavel:=10;
  5  end;
  6  /

Procedure created.

SQL> var xx number;
SQL> var
variable   xx
datatype   NUMBER
SQL>
SQL>
SQL> exec t(:xx);

PL/SQL procedure successfully completed.

SQL> print :xx

        XX
----------
        10

SQL> drop procedure t;

Procedure dropped.

SQL> 
:-o
Editado pela última vez por dr_gori em Qua, 21 Mar 2007 5:31 pm, em um total de 1 vez.
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Dr_gori,

não ficou muito claro quando você colocou o datatype number. não entendi mesmo.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Eu não coloquei DATATYPE NUMBER. Só digitei VAR e dei um ENTER.
Ele me mostrou que tinha sido criado uma variavel XX de tipo Number.
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

valeu dr_gori...consegui, deu carto.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes