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

      Estou tendo problemas ao fazer um Procedure e passar por parâmetro algumas chaves. Por exemplo, dentro do procedure tem um select que usa o seguinte comando:

      Select ID_NOTA
      From Notas
      Where ID_NOTA IN ( PNOTAS )

      O PNOTAS é um parametro do tipo varchar2 que é passado para o procedure, ele tem o valor “10,15,16” sem as aspas . O problema ocorre devido ao fato do ID_NOTA ser do tipo number. Da um erro que é invalid number, ai coloquei To_char em Id_nota, parou de dar o erro mas o select não retorna nehum registro. Ja tentei passar “’10’,’15’,’16′” e também nao seleciona nada. Alguem sabe como poderia solucionar esse problema?

      #75488
      Marcio68Almeida
      Participante

        tente passar TRIM (TO_CHAR (ID_NOTA))

        #75492
        Anônimo

          Márcio, ainda não deu certo, tentei passar com trim em um lado da comparação, nos dois lados, e nada……continua sem trazer nehum registro…o mais interessante é que visualizando o parametro ele mostra
          ’10’,’15’ e vou no codigo do procedure e coloco ao inves de PNOTA escrevo ’10’,’15’ deixando fixo, ai funciona…muito estranho

          #75493
          Anônimo

            Fiz um teste aqui e deu certo. acredito que o problema não seja esse.

            A number
            B varchar2(20)

            SQL> select * from teste where to_char(a) in (b);

                 A B
            

                 6 6
                 7 7
            
            #75495
            bispopv
            Participante

              No SQL Plus funciona mas dentro do stored procedure não funciona….ja realizei varios testes..

              #75507
              Anônimo

                Tentou montar como uma consulta dinâmica, isto é, montar toda a consulta em uma única variável e depois executa-la ao inves de agregar os valores no momento da execução ?

                #75509
                bispopv
                Participante

                  A solução foi essa, colocando em uma variável e depois executando em um cursor explicito.
                  Mas como o controle do cursor implícito é mais fácil e tb por estar seguindo um padrão no desenvolvimento do meu sistema ( que sua cursores implicitos ), gostaria de utilizadar o cursor implicito, e no select do cursor implícito não deu certo. Mesmo assim, obrigado pela dica.

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