文本拆分读入分组后入库
【问题】
有一个 txt 文档,格式如下:[分类名1] 文本内容1
[分类名1] 文本内容2
[分类名2] 文本内容3
如何写入数据库中(oracle 10g)
要求 [] 不写入数据库,[分类名]和文本内容用空格隔开,各行之间有空格,如果分类名相同则只能在数据库中存在一条记录,而分类名相同的文本内容都要追加到这条记录上.
【回答】
相比JAVA复杂的硬代码,用SPL做会比较简单,还能方便嵌入JAVA(参考Java 如何调用 SPL 脚本),脚本如下:
A |
|
1 |
=file("E:\\s.txt").import@i() |
2 |
=A1.select(~).(~.split@t(" ")).new(left(mid(~(1),2),-1):分类,~(2):内容) |
3 |
=A2.group(分类).new(~.分类,~.(内容). concat@c():内容) |
4 |
>db.update(A3,tableName,col1:分类,col2:内容) |
A1 : 读取文本文件s.txt中的内容,返回成序列。
A2 :去空行,拆分序列,创建以分类和内容为列的序表,并去除分类列数据两边的括号。
A3 :按分类分组,将分类相同的内容拼接到一起。
A4 :写入数据库db中,db为数据源中配置好的数据源连接。