【发布时间】:2015-08-23 12:56:17
【问题描述】:
生产环境中存在一张表,结构如下:
CREATE TABLE gold_dwh_reload (
msisdn NUMBER(13,0) NOT NULL,
recharge_date TIMESTAMP(6) NOT NULL,
impacted_balances VARCHAR2(4000) NULL,
lc_state VARCHAR2(5) NOT NULL)
TABLESPACE sopfun_tab
NOCOMPRESS
/
正常的咨询结果如下:
MSISDN RECHARGE_DATE IMPACTED_BALANCES LC_STATE
584124723950 29.04.15 13:23:38.000 <balance><name>B_LPP_Bs_Main</name><label></label><before>697.21429</before><after>797.21429</after><amount>100</amount><start></start><end></end><unit>Bs</unit></balance><balance><name>B_LPP_KB_National</name><label>PA_Adjustment</label><before>0</before><after>10240</after><amount>10240</amount><start>29042015000000</start><end>29052015000000</end><unit>Kbytes</unit></balance><balance><name>B_LSP_Bs_Promotions</name><label>PA_Adjustment</label><before>0</before><after>25</after><amount>25</amount><start>29042015000000</start><end>29052015000000</end><unit>Bs</unit></balance> ACT
但我需要打破列中的 IMPACTED_BALANCES 字段。有人知道我是怎么做到的吗?
【问题讨论】:
-
您想要的输出究竟是什么?你想从表中取出一行并产生多行输出吗?如果是这样,您希望该输出看起来像什么?您是否试图解析出一组已知属性?或者您是否希望输出中的列数根据 XML 的内容是动态的?如果表中的不同行具有结构不同的 XML sn-ps,会发生什么情况?您使用的是哪个版本的 Oracle(XQuery 选项可能因版本而异)?
-
你有什么版本? 9i? 10克? 11克? 12c ???检查数据库文档,搜索:XMLType Operations
-
@JustinCave 我想得到这样的东西:584124720289 05.05.15 17:13:52.000 B_LPP_Bs_Main 626.89287 826.89287 200 Bs ACT。
-
@Eng.SamerT 我有 Oracle 11g。
标签: sql xml oracle xml-parsing type-conversion