求解答:读取clob存的xml文件,然后解析出来插入到另外一个表中
大致的要求如下:
已有程序可以把xml文件写入到表1中的clob字段中,我需要写一个触发器把写入的xml文件的内容提取出来,然后解析出来后写入到另外一个表中去。
表1的表结构为:
列名 数据类型 长度 允许空
id Varchar2 25 否
commandId Varchar2 20 是
data clob ----- 是
stamp Varchar2 20 是
Temp表结构(监测设备上报的数据自动写入此表)
Data字段的字符串格式如下: //说明: 此为根节点
<___dollar_2>com.automic.commu.protocols.auto3_0.DataAuto3_0
//说明:此处为一条记录开始
0
0
0
0
1
0
0
1
1
72186.0
0.0
-72186.0
0.0
071102 16
00
0
0
0
00000000000000000000000000000000
1
15832897782
2310008899
10000
0
//说明:此处为一条记录结束标志
//说明:此处为一条记录开始
0
0
0
0
1
0
0
1
1
72186.0
0.0
-72186.0
0.0
071102 16
00
0
0
0
00000000000000000000000000000000
1
15832897782
2310008899
10000
0
//说明:此处为一条记录结束标志
//说明:此处为一条记录开始
0
0
0
0
1
0
0
1
1
72186.0
0.0
-72186.0
0.0
071102 16
00
0
0
0
00000000000000000000000000000000
1
15832897782
2310008899
10000
0
//说明:此处为一条记录结束标志
说明:当监测设备向临时表temp中写入数据时,触发器将temp表中刚写入的记录中data字段字符串中包含的各条记录(若干条,条数不确定)解析出来,将其中有用的信息解析出来写入下面目标表结构中,比如72186.0,将72186.0写入目标表结构中accumulateFlux字段下面,目标表中commandId是temp表中的commandId..
2 目标表结构(CollectData)(触发器解析temp表中data字段的字符串后写入此表中)
列名 数据类型 长度 允许空
commandId Varchar2 20 是
GPRSid Varchar2 15 否
sensorStatus Number 1 是
powerStatus Number 1 是
remainWaterStatus Number 1 是
accumulateFlux Number (8,2) 是
instantFlux Number (5,3) 是
remainWater Number (8,2) 是
dateTime Date 是
我想主要的流程为:
1。读取xml文件
2。解析xml到table2中,不知道现成的工作可以直接用,还是需要按照字符来定义,比如自己解析每一条记录的开始位置等。
多谢了!!