Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 10 anos, 7 meses atrás por Avatar de vanessa mortago amatovanessa mortago amato.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #104462
    Avatar de airoospairoosp
    Participante

      Boa tarde,

      Em uma tabela há um campo que contém as informações separadas por vírgula. Vi que com o código abaixo é possível gerar uma linha para cada informação.

      onde acesso= ‘A1,B1,C1,D3,J4’

      select a.nome, name_str.extract(‘/X/text()’).getstringVal() acesso
      from usuarios a, table(xmlSequence(extract(XMLType(‘‘||replace(a.acesso,’,’,’‘)||’‘),’/DOC/X’))) name_str
      where a.tipousu = ‘C’

      O detalhe é que quando tento verificar todos os registros, ocorre o erro abaixo:

      ORA-31011: XML parsing failed
      ORA-19202: Error occurred in XML processing
      LPX-00241: entity reference is not well formed
      Error at line 1
      ORA-06512 at SYS.XMLTYPE, line 0
      ORA-06512 at line 1

      Alguém sabe o que pode estar errado? Falta fazer alguma configuração? Fiz o teste nos bancos 9i e 10g.

      Obrigado.

      Airton

      #106513
      Avatar de vanessa mortago amatovanessa mortago amato
      Participante

        Airton,

        Eu fiz alguns testes aqui com o seu código e pelo que eu entendi o problema está acontecendo porque tem algum caractere especial no campo acesso.

        Se no seu campo acesso tiver algum desses caras (http://docs.oracle.com/cd/A97337_01/ias102_otn/buslog.102/bc4j/obcCustomXml.htm)
        irá ocorrer o erro.

        Vanessa

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