2017-09-14 5 views
0

Oracle 12c 테이블의 CLOB 유형 열에 저장된 XML 코드에서 일부 태그 값을 추출해야합니다.Oracle 12c : XML (CLOB 유형)에서 데이터 추출 (선택)

이전에 우리는 xmltype (COLUMN) .extract ('XPath/text()'). getStringVal()을 사용하여 태그에서 데이터를 추출했지만 데이터베이스를 12c로 업그레이드 한 후에는 작동하지 않았습니다. 우리가 어떤 값을 선택해야이 XML에서

<otm:ShipmentStatus 
xmlns:gtm="http://xmlns.oracle.com/apps/gtm/transmission/v6.4" 
xmlns:otm="http://xmlns.oracle.com/apps/otm/transmission/v6.4"> 
<otm:ServiceProviderAlias> 
<otm:ServiceProviderAliasQualifierGid> 
<otm:Gid> 
<otm:Xid>GLOG</otm:Xid> 
</otm:Gid> 
</otm:ServiceProviderAliasQualifierGid> 
<otm:ServiceProviderAliasValue>TEST.123</otm:ServiceProviderAliasValue> 
</otm:ServiceProviderAlias> 
<otm:IntSavedQuery> 
<otm:IntSavedQueryGid> 
<otm:Gid> 
<otm:DomainName>TEST</otm:DomainName> 
<otm:Xid>FIND_DELIVERY_NUMBER</otm:Xid> 
</otm:Gid>......etc. 

:

우리는 XML처럼 있습니다.

이 문제를 해결할 수있는 방법을 제안하십시오. 더 필요한 것이 있으면 언제든지 물어보십시오.

감사합니다. Satyam

+0

https://docs.oracle.com/database/121/SQLRF/functions068.htm#SQLRF00640 당신은 "** ** 일부 값을"추출해야 – Rene

+0

은? 귀하의 비즈니스 고객이 ** 해당 ** 단어 **로 ** 정확히 ** 공식화 된 요청으로 귀하에게 왔습니까? – mathguy

답변

0

예제 xml에는 네임 스페이스가 있습니다. 그리고 그것을 사용해야합니다.

xmltype.extract('/otm:ShipmentStatus', 'xmlns:gtm="http://xmlns.oracle.com/apps/gtm/transmission/v6.4" 
xmlns:otm="http://xmlns.oracle.com/apps/otm/transmission/v6.4"') extacting node from specify namespace 

xmltype.extract('/*:ShipmentStatus') extractin node from any namespace