java解析clob的xml数据_java读取Oracle11g clob存的xml文件,然后解析出来插入到另外一个表中...

求解答:读取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中,不知道现成的工作可以直接用,还是需要按照字符来定义,比如自己解析每一条记录的开始位置等。

多谢了!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值