- Este tópico contém 7 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por DanielB.
-
AutorPosts
-
4 de dezembro de 2008 às 9:25 pm #84136Anônimo
Pessoal tenho uma procedure que recebe 5 parametros, sendo dois de entrada e tres de saída, assim:
PROCEDURE PR_PROC (p_cod_empresa in varchar2,
p_periodo in number,
p_retorno OUT T_CONT_FISCAL,
p_retorno_f OUT T_FISCAL_F,
p_retorno_s OUT T_FISCAL_FS) ISEstou executando-a no SQL NAVIGATOR para eu testar, mas como eu faço com esses tres parametros OUT na hora que eu vou executar para testes?
4 de dezembro de 2008 às 9:50 pm #84137Regis AraujoParticipanteCleber, boa tarde!
Quando vc for fazer o teste da procedure, apenas informe os valores referentes aos parametros IN, os parametros que forem OUT não precisam de valor de entrada, pois quando vc executar a procedure ela irá retornar os resultados nos parametros OUT.
Ex:
Procedure UnificaNomes
(A in varchar2(10),
B in varchar2(10,
C in varchar2(10),
D OUT varchar2(33)) IS …..execute teste(Maria,Aparecida,Cardoso);
Abraços…!!!
4 de dezembro de 2008 às 10:05 pm #84138AnônimoDeu certo nao, ele me da essa mensagem de erro:
WRON NUMBER OR TYPES OF ARGUMENTS IN CALL TO ‘nome da proc…’
4 de dezembro de 2008 às 10:24 pm #84139Rodrigo MesquitaParticipantecomo vc ta fazendo a chamada da procedure?
4 de dezembro de 2008 às 11:31 pm #84142Leonardo LitzParticipanteCleber, faca desta forma:
declare
v_cod_empresa varchar2(1) := 1;
v_periodo number := 1000;
v_retorno varchar2(60);
v_retorno_f varchar2(60);
v_retorno_s varchar2(60);
begin
execute PR_PROC (v_cod_empresa, v_periodo, v_retorno,v_retorno_f,v_retorno_s);dbms_output.put_line(v_retorno||’-‘||v_retorno_f||’-‘||v_retorno_s);
end;
Cara, unica coisa que vc tem que dar uma olhada é nos types das variaveis,
p_retorno_f OUT T_FISCAL_F
este T_FISCAL_F, deve de ser um type especial, ai vc devera declarar a variavel de recebimento da mesma forma.
Vlw Leonardo Litz
4 de dezembro de 2008 às 11:36 pm #84143Anônimoassim, no SQL NAVIGATOR.
exec PROCEDURE PR_PROC (‘aaaa’, 111);
5 de dezembro de 2008 às 12:49 am #84145Rodrigo MesquitaParticipanteo que o Leonardo falou ai resolve,
vc tem q ver qual o formato das variáveis que vão receber o resultado das variáveis T_CONT_FISCAL,T_FISCAL_F,T_FISCAL_FS, acredito que declarando umas variáveis do tipo REF CURSOR resolve
5 de dezembro de 2008 às 5:47 pm #84151DanielBParticipantecuando se invoca a un procedure o function tienen que tener todos los parametros en el pasaje, salvo que sean definidos con un valor DEFAULT.
para invocarlo desde un herramiente tipo sql developer hay dos posibilidades1) declarar un bloque pl
declare
a1 tipo_Dato1;
a2 tipo_dato2;
begin
miproc( 1,sysdate, a, b);
end;donde miproc esta definido como
miproc(p_1 number, p_2 date, p_3 out tipo_dato1, p_4 out tipo_dato2);2) create or replace procedure pru (a number, b out number) is
begin
b:=a;
end;
var b number;exec pru(1,:b);
print b; -
AutorPosts
- Você deve fazer login para responder a este tópico.