Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #103729
    Avatar de HitotuziHitotuzi
    Participante

      Bom dia,

      Existe a possibilidade de carregar apenas algumas tags do aquivo xml e gravar no banco?
      A pergunta é que o procedimento que fiz carrega apenas xml que estão completos, o que ocorre é que as vezes recebo xml onde no final aparece uma tag que não é utilizada pra nada que vem incompleta ocasionando os erros:


      ORA-31011: falha no parse XML
      ORA-19202: Ocorreu um erro no processamento XML
      LPX-00245: dados extras depois do fim do documento
      Error at line 1
      ORA-06512: em "SYS.XMLTYPE", line 296
      ORA-06512: em line 1

      Então eu queria carregar o xml até a tag que eu preciso, ignorando a última que sempre da erro.

      #103730
      Avatar de rmanrman
      Participante

        @Hitotuzi

        Poderia postar o procedimento que você desenvolveu ?

        Mas adiantando, se o XML está invalido, o que deve ser tratado é o XML invalido não o seu procedimento de carga.

        #103740
        Avatar de fsitjafsitja
        Participante

          Exatamente o que o RMAN disse. O XML deve ser bem-formado:
          http://en.wikipedia.org/wiki/XML#Well-f … r-handling

          Sendo bem formado você pode usar XMLQuery para pegar apenas as tags e “registros” que interessam a você, num insert .. select.

          Se precisar de ajudar nesse procedimento, após deixar o XML bem-formado, poste para nós o layout dele e a regra que você precisa, assim como a estrutura da tabela destino, aí podemos ajudá-lo no código.

          #103752
          Avatar de HitotuziHitotuzi
          Participante

            Bom dia!

            Tratam-se de xml de notas fiscais eletronicas

            -

            14
            999999999
            REMESSA DE VASILHAME
            0
            55
            1
            107203
            2010-01-02
            2010-01-02
            1
            1400100
            2
            1
            3
            1
            1
            0
            10.12.00.00

            • 0236594100026
              TESTE LTDA

            TESTE

            Av. Brasil
            1000
            Cento
            146466
            SAO PAULO
            SP
            0000000
            1058
            BRASIL

            25454645
            0
            0000000

            • 0454646600004

            DEST TESTE LTDE

            AV DEZ 2456
            2275
            CENTRO
            154654
            SAO PAULO
            SP
            6900000
            1058
            BRASIL

            065454565

            -

            104195
            00000000000000
            PALETE MADEIRA,1,00 M,1,20 M,0,14 M,PBR1
            00
            6920
            pc
            24
            17.0000
            408.00
            00000000000000
            pc
            24
            17.0000

            -

            • 0
              60
              0.00
              0.00
            • 000000000000

            999

            53

            -

            01
            0.00
            0.00
            0.00

            -

            01
            0.00
            0.00
            0.00

            -

            0.00
            0.00
            0.00
            0.00
            408.00
            0.00
            0.00
            0.00
            0.00
            0.00
            0.00
            0.00
            0.00
            408.00

            • 0

              015515144884840
              TRANP LTDA
              454645421
              Av. Brasil, 952
              SAO PAULO
              SP

          • 24
            0.000
            0.000

          • <!--
            O ERRO INICIA NESTA TAG ABAIXO OS XML QUE VEM
            COM O CONTEÚDO ATÉ A TAG CARREGAM
            NORMALMENTE
            -->

            -

            -

            A página XML não pode ser exibida
            Não é possível exibir a entrada XML usando a folha de estilos XSL. Corrija o erro e clique no botão Atualizar ou tente novamente mais tarde.


            Em um documento XML só são permitidos elementos de nível superior. Erro ao processar o recurso 'file:///D:/xmlteste/1410010...

            MIIGPTCCBSWgAwIBAgIIUhIW3cYF9IcwDQYJKoZIhvcNAQEFBQAwTDELMAkGA1UEBhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxKDAmBgNVBAMTH1NFUkFTQSBD...

               O erro está na tag <strong></strong> que as vezes vem no xml, quando não vem, ou seja, quando o xml vem até a tag <strong></strong> carrega normalmente.
            
                O comando que estou utilizando para inserir na tabela é:
            

            insert into nfe_owner.tb_nfe_nota_fiscal (NOFI_ID,NOFI_DT_CARGA,NOFI_XML)
            values (vi_nofi_id,SYSDATE,xmltype(bfilename('NFE_XML',vs_arquivo),nls_charset_id('AL32UTF8')));
            COMMIT;

                 que está dentro  uma procedure que carrega o xml de dentro de um diretório e grava na tabela
            

          #103753
          Avatar de rmanrman
          Participante

            @Hitotuzi

            Realmente você precisa corrigir a geração do XML.

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