2017-09-14 25 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 
関連する問題