Pular para o conteúdo
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #95016
    Muca
    Participante

      Boa Tarde Pessoal,

      Estou migrando o banco atual (Firebird) para Oracle, e no banco antigo grande parte das procedures retornam mais de uma linha, ou seja tenho um parâmetro de saida (S_RETORNO), e a medida o código vai sendo executado e um valor é atribuído a S_RETORNO, lanço um SUSPEND para que o valor seja adicionado na “tabela de saída” e continuo executando a procedure, exemplo:

      BEGIN
      .
      .
      .
      S_RETORNO = 1;
      SUSPEND;
      S_RETORNO = 3;
      SUSPEND;
      S_RETORNO = 5;
      SUSPEND;
      .
      .
      .
      END

      Por fim chamo a procedure com um select, exemplo:

      SELECT S_RETORNO FROM MINHA_PROCEDURE;

      e será retornado todos os valores atribuidos ao retorno na procedure.

      TESTE
      1
      3
      5

      No Oracle não encontrei nada parecido ainda, entao qual solução posso empregar para solucionar esse problema no Oracle???

      É isso!!
      Obrigado!!

      #95022
      burga
      Participante

        Comece por aqui:

        http://www.oracle-base.com/articles/9i/ … ions9i.php

        http://www.databasejournal.com/features … Oracle.htm

        Se quiser saber mais, faça uma busca sobre “table functions”…

        #95023
        Muca
        Participante

          Valeu pela resposta burga

          Ja estou dando uma olhada nos sites que voce passou,
          mas fica a dúvida, só consigo esse tipo de retorno (tabela) em funções?!?!?

          Com Stored Procedures não é possivel???

          E outra duvida, não terei posteriormente problemas em chamar funções dentro de procedures e vice-versa?!?!?

          Obrigado!!

          #95024
          Muca
          Participante

            [quote=”burga”:5g9s16x7]Comece por aqui:

            http://www.oracle-base.com/articles/9i/ … ions9i.php

            http://www.databasejournal.com/features … Oracle.htm

            Se quiser saber mais, faça uma busca sobre “table functions”…[/quote]

            Valeu pela resposta burga

            Ja estou dando uma olhada nos sites que voce passou,
            mas fica a dúvida, só consigo esse tipo de retorno (tabela) em funções?!?!?

            Com Stored Procedures não é possivel???

            E outra duvida, não terei posteriormente problemas em chamar funções dentro de procedures e vice-versa?!?!?

            Obrigado!!

            #95029
            burga
            Participante

              A diferença simples entre procedures e functions é que as funções possuem retorno… Se você quer um retorno, como um ResultSet, tem que usar função mesmo…

              Em relação a utilização de funções e procedimentos, um dentro do outro, não vejo problema algum.

              #95031
              Muca
              Participante

                [quote=”burga”:3uth3c22]A diferença simples entre procedures e functions é que as funções possuem retorno… Se você quer um retorno, como um ResultSet, tem que usar função mesmo…

                Em relação a utilização de funções e procedimentos, um dentro do outro, não vejo problema algum.[/quote]

                Blz burga…

                Quanto a chamada de funções e procedimentos ja tive problemas quando precisei migrar para o SQLServer.

                mas de qualquer forma meu problema principal tem solução.

                Obrigado!

                e até a proxima!!

                #95035
                Manoel872
                Participante

                  Você pode criar um type no oracle trabalhar utilizando o type e depois fazer um select cast no seu type retornando um resulset.

                  Att,

                  Manoel Jr.

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