Oracle 12c:从XML中提取数据(选择)(CLOB类型)

时间:2017-09-14 09:01:40

标签: sql xml oracle xpath oracle12c

我需要从保存在Oracle 12c表中的CLOB类型列中的XML代码中提取一些标记值。

早些时候我们使用xmltype(COLUMN).extract('XPath / text()')。getStringVal()从标签中提取数据但在数据库升级到12c后它无法正常工作。

我们有XML Like:

<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我们必须选择一些值。

请提出一些解决此问题的方法。随意询问您是否还需要更多。

谢谢。 萨特雅姆

1 个答案:

答案 0 :(得分:0)

示例xml具有名称空间。你必须使用它。

buttonClick(){
var data1 = [{a:1,b:10},{a:2,b:20}];
var mystyle = {
  headers:true, 
  column: {style:{Font:{Bold:"1"}}},
  rows: {1:{style:{Font:{Color:"#FF0077"}}}},
  cells: {1:{1:{
    style: {Font:{Color:"#00FFFF"}}
  }}}
};
 alasql('SELECT * INTO XLSXML("tdts.xls",?) FROM ?',[mystyle,data1]);