Estou com um problema ao tentar usar a função ORA_HASH em um campo XMLTYPE.
Se tentar dessa forma:
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
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):
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
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