Pular para o conteúdo
  • Este tópico contém 15 respostas, 7 vozes e foi atualizado pela última vez 17 anos atrás por jspaulonci.
Visualizando 15 posts - 1 até 15 (de 16 do total)
  • Autor
    Posts
  • #85405
    jspaulonci
    Participante

      Moçada…estou aqui com um negócio bizarro .

      Tenho uma procedure que quando eu a executo manualmente ela roda com sucesso, quando eu a crio com um job para executa-la ela dá o erro

      [color=red]ORA-12012: error on auto execute of job 5121
      ORA-01427: single-row subquery returns more than one row
      ORA-02063: preceding line from DBLK_PGSF_PRD3
      ORA-06512: at “PGSF.PR_TESTE”, line 5
      ORA-06512: at “PGSF.PR_ATUALIZAR_FISCAIS”, line 90
      ORA-06512: at line 1[/color]

      Alguem sabe o que pode ser esse erro ?

      Abraços
      João Paulo Spaulonci

      #85406
      Avatar photoLeonardo Litz
      Participante

        Olá João, voce poderia colocar a procedure para gente dar uma olhada?

        #85411
        jspaulonci
        Participante

          Olha moçada…..não sei se é pra Rir..chorar…… rasgar a OCP…..ou ir em São Francisco dar um pedala o Lary Ellison…(que está com bolso cheio)

          Bom…escolhi chorar pois é muito bizarro.

          O negócio é o seguinte…..
          Eu vim resumindo o problema e cheguei no seguinte na instrução que dá o erro pra mim.

          Quando eu rodo a instrução no meu servidor Oracle (Sun Solaris 5.10 com client 10.2.0.3.0) ele dá erro

          NUM_FISCAL NUM_VINCULO COD_SETOR


           16760           1 51253
           16771           1 51253
           16941           1 77858
           16989           1 51253
           17040           1 51253
           17192           1 51253
           17234           1 51249
           17258           1 12218
           17570           1 24333
           17623           1 51085
          

          ERROR:
          ORA-01427: single-row subquery returns more than one row
          ORA-02063: preceding line from DBLK_PGSF_PRD3

          120 rows selected.

          O retorno de linhas desta query deveria ser 5308 linhas, acontece que quando ela executa 120 linhas dá o erro, detalhe…utilizei a ferramenta sqlplus.

          Aí é que vem o problema.
          Quando eu rodo , também utilizando o sqlplus , porem na minha máquina, ele executa normalmente.

          vocês acreditam ?

          NUM_FISCAL NUM_VINCULO COD_SETOR


          173451           1 12209
          173633           1 13836
          173669           1 13798
           32132           1 19606
           32417           1 19606
           32624           1 51220
          

          5308 linhas selecionadas.

          alguem tem alguma lúz….

          abraços

          João Paulo Spaulonci

          #85413
          vieri
          Participante

            consultes os parâmetros de nls da sua sessão.

            SQL> select *
            2 from NLS_SESSION_PARAMETERS
            3 ;

            PARAMETER VALUE


            NLS_LANGUAGE AMERICAN
            NLS_TERRITORY AMERICA
            NLS_CURRENCY $
            NLS_ISO_CURRENCY AMERICA
            NLS_NUMERIC_CHARACTERS .,
            NLS_CALENDAR GREGORIAN
            NLS_DATE_FORMAT DD-MON-RR
            NLS_DATE_LANGUAGE AMERICAN
            NLS_SORT BINARY
            NLS_TIME_FORMAT HH.MI.SSXFF AM
            NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM

            PARAMETER VALUE


            NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
            NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
            NLS_DUAL_CURRENCY $
            NLS_COMP BINARY
            NLS_LENGTH_SEMANTICS BYTE
            NLS_NCHAR_CONV_EXCP FALSE

            O problema pode estar ai…

            caso esteja diferente coloque os iguais via alter session.

            #85414
            jspaulonci
            Participante

              Vieri…infelizmente não resolveu….mas boa tentativa..eu não tinha pensado nisso.

              Abraços

              João Paulo Spaulonci

              #85417
              vieri
              Participante

                gere um trace da sua sessão via sqlplus local e outro trace da sua sessão via sqlplus client,

                análise as diferenças…

                com certeza irá acusar algo.

                #85421
                Rodrigo Almeida
                Participante

                  E porque no client que você executa no client e recebe esse erro:

                  ERROR:
                  ORA-01427: single-row subquery returns more than one row
                  ORA-02063: preceding line from DBLK_PGSF_PRD3

                  ???

                  Abraços,
                  Rodrigo Almeida

                  #85422
                  jspaulonci
                  Participante

                    Rodrigo,,,,

                    No client da minha máquina, ou seja…realizando uma conexão via tns
                    não dá erro, quando entro no servidor localmente, aí o erro ocorre

                    Abraços

                    João Paulo Spaulonci

                    #85423
                    David Siqueira
                    Participante

                      João meu brother tudo beleza!!!!
                      Cra tu vai me desculpar , mais é impossível isso, até porque o mesmo caminho que sua procedure faria executada no server é o mesmo caminho que ela faz executada do client, o único passo a mais é que enviada via client ela faz uma utilização do TNS e trafega via rede até seu BD, mais dai ela executar na sua sessão client e não executar direto do server é duro viu, tá com cara de erro de query mesmo isso meu velho, algum passo da query dessa proc tem parametro faltando ou filtragem de dados de maneira equivocada. O Vieri mandou bem na observação dos parametros, e reforço o pedido do Litz, posta ela interia aqui pra gente ver.

                      Abcs.

                      David

                      #85424
                      jspaulonci
                      Participante

                        David,,,,,não tem procedure, não tem parametros cara…….não sei o que acontece…… na minha estação de trabalho roda…o servidor do banco não roda….já abri chamado na Oracle…. vamos ver o que vão dizer..

                        Obrigado

                        #85443
                        CleitonHanzen
                        Participante

                          Opá..

                          E o que seria o objeto DBLK_PGSF_PRD3 que ele está retornando o erro no teu select?
                          Pelo que entendi, o teu Job chama a procedure PGSF.PR_ATUALIZAR_FISCAIS certo? O que vem a ser um este outro objeto? Trigger/procedure/função?

                          Você está executando o processo com o mesmo usuário tanto no servidor quanto no cliente?

                          Isso tá muuuuuito estranho…pra mim, tem cara de estar sendo utilizados usuários diferentes, e as queries estarem sendo feitas em cima de objetos diferentes (view, tabela ou sinônimo), somente assim explicaria este problema.

                          #85459
                          jspaulonci
                          Participante

                            Bom dia moçada, pelo que o analista da Oracle disse, o problema pode ser esse aí …… se alguem quiser dar uma olhada no Metalink, assim que eu confirmar eu publico a conclusão.

                            RESEARCH

                            Bug 7526851 ORA-1427 ON DISTRIBUTED SUBQUERY THROUGH DBLINKS
                            Bug 5146740 INCORRECT RESULTS ON OUTER JOIN WITH BIND VARIABLE

                            Abraços

                            João Paulo Spaulonci

                            #85461
                            Ishii
                            Participante

                              Olá,

                              Então em algum momento vc está usando o DBLink? Se estiver usando verifique o tnsnames do Servidor e o do cliente e veja se tem diferenças…

                              []s Ishii

                              #85463
                              jspaulonci
                              Participante

                                Sim…uso dblink sim, mas isso eu já verifiquei.

                                Obrigado

                                #85471
                                CleitonHanzen
                                Participante

                                  Opá..

                                  Eu já tive alguns problemas com queries através de DBLInks na versão 9.2.0.7 e 10.2.0.2..

                                  A “solução de contorno” que a Oracle me passou, era setar um parâmetro oculto..

                                  Tenha certeza das seguintes informações:
                                  – Executar a procedure com o mesmo usuário (tanto no server, quanto no cliente)
                                  – Se está está acessando dados via DBLink, faça esta query no banco que este DBLink está apontando

                                  Se já verificou isso e ainda sim não chegou à conclusão nenhuma do problema, abra um SR no suporte da Oracle que vão resolver teu problema…. 😉

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