Boa tarde turma,
Eu tenho uma procedure que tem um parametro de entrada e dois ou três de saida. Como executar a procedure, pois a mesma dá um erro de numero invalido de argumentos.
Parametro de saida
- heraldoaraujo
- Rank: Programador Pleno
- Mensagens: 41
- Registrado em: Dom, 19 Fev 2012 12:10 pm
-
- 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
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Como o noctífero disse, seria melhor com tua assinatura da procedure.
Agora, suponhamos que você tenha uma procedure que passe 1 parâmetro e receba outros dois, seria mais ou menos isso:
Qualquer coisa, manda pra gente.
Agora, suponhamos que você tenha uma procedure que passe 1 parâmetro e receba outros dois, seria mais ou menos isso:
declare
vIn number := 1;
vret1 number;
vret2 varchar2(100);
begin
prc_executa (p1 => vIn -- IN
,p2 => vret1 -- OUT
,p3 => vret2); -- OUT
-- exibir retorno
dbms_output.put_line('Retorno 1: '|| to_char(vret1) || ' Retorno 2: '|| vret2 );
end;
-
- Rank: DBA Sênior
- Mensagens: 317
- Registrado em: Seg, 16 Nov 2009 4:50 pm
- Localização: São Paulo - SP
Se não me engano quando você vai executar a sua procedure dentro de um bloco anônimo os parâmetros de saída não são obrigatórios. De qualquer maneira você pode declarar variavéis com o conteúdo nulo e informa-las na chamada da sua procedure. Atente-se para o fato que o Oracle gera o erro de número de argumentos inválidos quando os datatypes declarados estão diferentes dos datatypes atribuídos. Isso eu percebi utilizando a ferramenta PL/Developer versão 7.
Abç.,
Abç.,
-
- 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
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brothers, bom dia.
Mesmo dentro do bloco anônimo (conforme exemplo abaixo no Oracle 10.2.0.1.0), o Oracle não permite parâmetros OUT sendo nulos (ele não permite um "Default Null") nesse tipo de saída:
Qualquer coisa, manda pra gente.
Abraço,
Mesmo dentro do bloco anônimo (conforme exemplo abaixo no Oracle 10.2.0.1.0), o Oracle não permite parâmetros OUT sendo nulos (ele não permite um "Default Null") nesse tipo de saída:
-- criação
create or replace procedure prc_lista_valores (pIn in number
,pOut out varchar2)
is
begin
pOut := 'Retorno da procedure prc_lista_valores: '||to_char(pIn);
end prc_lista_valores;
-- chamada - sem Out: Erro: PLS-00306 wrong number or types ...
begin
prc_lista_valores(pIn => 1);
end;
-- chamada - com Out: OK
declare
vret varchar2(100);
begin
prc_lista_valores(pIn => 2
,pOut => vret);
dbms_output.put_line('[Retorno:] '||vret);
-- Retorna:
-- [Retorno:] Retorno da procedure prc_lista_valores: 2
end;
Abraço,
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante