xmlexists가있는 where 절에 네임 스페이스를 통합하는 방법을 알아내는 데 문제가 있습니다. 쿼리는 다음과 같습니다.Oracle에서 네임 스페이스가있는 xmlexists
SELECT sing_d1.sing_info_text1, sing_d1.sing_info_text2
FROM XMLTABLE(
xmlnamespaces (
'http://www.abccompany.com/Canonical' AS "abc",
'http://abccompany.com/PmtInfo' AS "pmt",
'http://abccompany.com/CommonTypes' AS "cmn",
'http://www.w3.org/2001/XMLSchema-instance' AS "xsi"),
'/abc:abc/abc:Pmt/pmt:Payments/pmt:PayInfo/pmt:Single/pmt:SingAddInfo'
PASSING payXml
COLUMNS
sing_info_type VARCHAR2(4000)
PATH 'cmn:AddInfoCmpType',
sing_info_text1 VARCHAR2(4000)
PATH 'cmn:AddInfoCmpText[1]',
sing_info_text2 VARCHAR2(4000)
PATH 'cmn:AddInfoCmpText[2]'
)sing_d1
WHERE
XMLExists(
'/abc:abc/abc:Pmt/pmt:Payments/pmt:PayInfo/pmt:Single/pmt:SingAddInfo[AddInfoCmpType = "IATCode"]'
);
모든 단서는 매우 높이 평가됩니다.
'어디에서 sing_info_type ='IATCode '라고 쓰는 것이 더 간단하지 않습니까? –