Pular para o conteúdo
  • Este tópico contém 11 respostas, 2 vozes e foi atualizado pela última vez 13 anos atrás por rwarstat.
Visualizando 12 posts - 1 até 12 (de 12 do total)
  • Autor
    Posts
  • #101937
    rwarstat
    Participante

      Pessoal,

      Estou tendo dificuldade para ler um xml que importei para o banco.

      Criei a tabela mytable2
      CREATE TABLE mytable2 OF XMLType;

      Inseri o xml nela
      INSERT INTO mytable2 VALUES (XMLType(bfilename('TESTE', '9-teste.xml'),
      nls_charset_id('AL32UTF8')));

      Ao tentar extrair o valor da chave, me retorna branco
      SELECT extractvalue(OBJECT_VALUE, 'DocData')
      FROM mytable2;

      O conteúdo do arquivo é


      Origem
      Destino
      SYNAPSE



      I
      981962034
      application/pdf
      981962034.pdf
      FLAT
      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


      Abraço,
      Roberto

      #101945
      rman
      Participante

        @rwarstat

        Posta o Desc da tabela mytable2 e como você está tentando consultar.

        #101947
        rwarstat
        Participante

          @rman,

          As infromações estão todas no primeiro post.
          A tabela mytable2 é do tipo xmltype. O xml está lá dentro, pois abro ela pelo TOAD sem problemas.
          E o select usado está logo acima do arquivo.

          #101952
          rman
          Participante

            @rwarstat

            Realmente todas as informações estão no primeiro tópico, agora que eu vi tem 1 KM de barra de rolagem horizontal. 😯

            #101953
            rman
            Participante

              @rwarstat

              Creio que é a forma de navegação nos nós que esta incorreta, é necessário passar toda a hierarquia até o nó desejado.

              Segue um exemplo de uso do extractvalue:

              http://www.adp-gmbh.ch/ora/sql/extractvalue.html

              #101954
              rwarstat
              Participante

                @rman,

                Desculpe pela barra quilométrica, mas precisava colocar o arquivo para que quem fosse ler pudesse ter uma idéia. E coloquei somente uma parte, pois ele é muito maior.
                Mas isso é assunto para outro tópico, para quando eu conseguir ler esse conteúdo.

                #101955
                rwarstat
                Participante

                  @rman,

                  Já coloquei de todas as maneiras possívies no extractvalue, mas mesmo assim não tenho o retorno de nenhuma informação.
                  Já li a documentação da Oracle sobre a manipulação de XML, e seguie ela, mas não consegui ter esse retorno.

                  #101956
                  rman
                  Participante

                    @rwarstat

                    Tente da seguinte forma:


                    select extractValue(object_value,'/MESSAGE/DATAPACKET/DocData') from mytable2;

                    Será que a forma de inserção está correta ?

                    Da forma que foi feita foi feito o upload do arquivo xml e passado para o XMLType, o XMLType não está esperando uma string com a estruturado em XML ?

                    Faça um teste com aquele exemplo do link, veja se funciona.

                    #101959
                    rwarstat
                    Participante

                      @rman

                      Testei da forma que tu passou e não funcionou também.

                      Estava fazendo pelo jeito em que é demonstrado em
                      http://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb04cre.htm#i1032611
                      onde no exemplo ele carrega um xml para uma tabela e trabalha com ele assim.

                      A abordagem do link que tu passou é interessante, mas para fazer aquilo eu teria que abrir o xml antes de colocar ele no banco, imagino que fazendo uma leitura como se fosse um arquivo texto.
                      Se eu conseguir abrir o xml como um arquivo texto eu pego o valor da DocData e trbalho com ele, não precisaria trabalhar como um xml. Mas, até mesmo para abrir como texto, lendo diretamente de um diretório, deu erro.

                      #101963
                      rwarstat
                      Participante

                        @rman

                        Consegui acessar a chave que queria através do comando
                        select extractValue(object_value,'/MESSAGE/DATAPACKET/FILEDATA/DocData') from mytable2

                        Agora surgiu outro problema, mas é assunto para outro post. rsrsrs

                        Muito obrigado pela ajuda.

                        Abraço,
                        Roberto

                        #101966
                        rman
                        Participante

                          @rwarstat

                          É quase acertei, faltou passar por um nó na minha sugestão.

                          #101968
                          rwarstat
                          Participante

                            @rman

                            Foi de grande valia a tua ajuda. Através dela é que cheguei ao correto.
                            Muito obrigado.

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