Pular para o conteúdo
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #84136
    Anô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) IS

      Estou 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?

      #84137
      Avatar photoRegis Araujo
      Participante

        Cleber, 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…!!!

        #84138
        Anônimo

          Deu certo nao, ele me da essa mensagem de erro:

          WRON NUMBER OR TYPES OF ARGUMENTS IN CALL TO ‘nome da proc…’

          #84139
          Rodrigo Mesquita
          Participante

            como vc ta fazendo a chamada da procedure?

            #84142
            Avatar photoLeonardo Litz
            Participante

              Cleber, 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

              #84143
              Anônimo

                assim, no SQL NAVIGATOR.

                exec PROCEDURE PR_PROC (‘aaaa’, 111);

                #84145
                Rodrigo Mesquita
                Participante

                  o 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

                  #84151
                  DanielB
                  Participante

                    cuando 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 posibilidades

                    1) 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;

                  Visualizando 8 posts - 1 até 8 (de 8 do total)
                  • Você deve fazer login para responder a este tópico.
                  plugins premium WordPress