我是使用 Oracle 的 xml DB 的新手,我开始了解它,但有一件很重要的事情我无法做到:我需要确定 1. 元素是否存在 2. 如果它是空的
不幸的是 XMLExists() 只是混合了两个答案。
我查询的一小部分:
SELECT case when XMLEXISTS('/' passing by ref c3.CLASS) then 1 else 0 end E_CLASS,
c3.CLASS
FROM XML_TEST x,
XMLTABLE ('/Data/EMPLOYER'
PASSING x.File_XML
COLUMNS DOSSIER NUMBER(8) PATH 'DOSSIER',
SUMMARY XMLTYPE PATH 'SUMMARY'
) e,
XMLTABLE ('/SUMMARY'
PASSING e.SUMMARY
COLUMNS BEGINDATE DATE PATH 'BEGINDATE',
WORKER XMLTYPE PATH 'WORKER'
) c1,
XMLTABLE ('/WORKER'
PASSING c1.WORKER
COLUMNS NRWORKER NUMBER(7) PATH 'NRWORKER',
RESULT_DETAIL XMLTYPE PATH 'RESULT_DETAIL'
) c2 ,
XMLTABLE ('/RESULT_DETAIL'
PASSING c2.RESULT_DETAIL
COLUMNS CODE CHAR(5) PATH 'CODE',
MINUTES NUMBER(5) PATH 'MINUTES',
CLASS CHAR(1) PATH 'CLASS'
) c3 ;