文本拆分读入分组后入库

【问题】

有一个 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中的内容,返回成序列。

undefined

A2  :去空行,拆分序列,创建以分类和内容为列的序表,并去除分类列数据两边的括号。

undefined

A3  :按分类分组,将分类相同的内容拼接到一起。

undefined

A4  :写入数据库db中,db为数据源中配置好的数据源连接。