ORA_HASH em campo XMLTYPE

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Avatar do usuário
Marciel
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 158
Registrado em: Qui, 03 Mai 2007 10:12 am
Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.

Bom dia,

Estou com um problema ao tentar usar a função ORA_HASH em um campo XMLTYPE.

Se tentar dessa forma:

Selecionar tudo

SELECT XML.OBJETO,
       ORA_HASH(XML.OBJETO) AS HASH
  FROM XML_DATA,
       XMLTABLE('//root' PASSING XML_DATA.XML COLUMNS --
                OBJETO XMLTYPE PATH '//root/fields') XML
Obtenho o erro:
ORA-22950: cannot ORDER objects without MAP or ORDER method

Convertendo para CLOB, o erro desaparece, porém o resultado da função muda a cada execução (provavelmente porque o descritor do clob muda):

Selecionar tudo

SELECT XML.OBJETO,
       ORA_HASH(XML.OBJETO.GETCLOBVAL()) AS HASH
  FROM XML_DATA,
       XMLTABLE('//root' PASSING XML_DATA.XML COLUMNS --
                OBJETO XMLTYPE PATH '//root/fields') XML
Se converter para varchar2, o resultado é correto. Porém, o campo XMLTYPE pode ter mais de 4000 caracteres, o que "quebra a bicicleta":

Selecionar tudo

SELECT XML.OBJETO,
       ORA_HASH(XML.OBJETO.GETSTRINGVAL()) AS HASH
  FROM XML_DATA,
       XMLTABLE('//root' PASSING XML_DATA.XML COLUMNS --
                OBJETO XMLTYPE PATH '//root/fields') XML
Alguma sugestão do que pode ser feito?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Tem que ser feito tudo no mesmo select?
Talvez você possa criar uma FUNCTION que faz o serviço de buscar, guardar num CLOB e executar manualmente.
:roll:
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes