당신은 기본 네임 스페이스를 사용할 수 있습니다. 그냥 '기본값'이라고 말하면됩니다. :) 그리고 귀하의 XML 문서에서와 동일하게 보입니다 :
SELECT b.EnvelopeID
FROM (SELECT xmltype ('
<DocuSignEnvelopeInformation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docgign.net/API/3.0">
<EnvelopeStatus>
<EnvelopeID>80621b17-97a8-926d945b602a</EnvelopeID>
</EnvelopeStatus>
</DocuSignEnvelopeInformation>') AS xml FROM DUAL) a,
XMLTABLE(xmlnamespaces(default 'http://www.docgign.net/API/3.0'),
'/DocuSignEnvelopeInformation/EnvelopeStatus' PASSING a.xml
COLUMNS EnvelopeID VARCHAR2(200) PATH 'EnvelopeID')b;
변형을 복구 할 수도 있습니다. 먼저 xml 문서에서 'docusign'대신 'docgign'을 사용합니다. 둘 중 하나를 수리하십시오. '/ K : DocuSignEnvelopeInformation/K : EnvelopeStatus'와 ': DocuSignEnvelopeInformation/xsd_k EnvelopeStatus/xsd_k'변화보다,이 디폴트의 이름 공간이며 마지막 변경에와 함께 'EnvelopeID'때문에 'K : EnvelopeID'
SELECT EnvelopeID
FROM (SELECT xmltype ('
<DocuSignEnvelopeInformation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.net/API/3.0">
<EnvelopeStatus>
<EnvelopeID>80621b17-97a8-926d945b602a</EnvelopeID>
</EnvelopeStatus>
</DocuSignEnvelopeInformation>') AS xml FROM DUAL) a,
XMLTABLE(xmlnamespaces('http://www.w3.org/2001/XMLSchema' as "xsd_k",
'http://www.w3.org/2001/XMLSchema-instance' AS "xsi",
'http://www.docusign.net/API/3.0' AS "k"),
'/k:DocuSignEnvelopeInformation/k:EnvelopeStatus' PASSING a.xml
COLUMNS EnvelopeID VARCHAR2(200) PATH 'k:EnvelopeID')b;
을 기본 네임 스페이스 선언이 요소에 사용하는 경우
의 범위 내의 모든 비정규 요소 이름이 자동으로 지정된 네임 스페이스 식별자와 연관된 있으며,
HERE (기본 네임 스페이스에 대한 검색)를 참조하십시오.
DocuSignEnvelopeInformation과 그 아래의 다른 모든 노드에는 xmlns = "http://www.docusign.net/API/3.0"네임 스페이스가 있기 때문입니다. 이 네임 스페이스가 정의되지 않은 경우 노드는 네임 스페이스가 없으므로 xmltable에서 네임 스페이스를 사용할 필요가 없습니다.
오류를 찾으셨습니까? – Andrej
감사합니다 Andrej! 나는 오류를 얻지 못했고 단순히 아무것도 표시하지 않았습니다. 그러나 Mottot의 대답은 아래에서 잘 작동합니다. 덕분에 –