我有一个CLOB列的表(文本用新行或逗号分隔)。 例如。 CLOBCOLUM =“name1,name2,name3 ......” 我可以阅读它并通过Java解析(逐行)
String rowName;
Clob clob = rs.getClob("CLOBCOLUM ");
BufferedReader bufferRead = new BufferedReader(clob.getCharacterStream());
while ((rowName = bufferRead.readLine()) != null) {
..............
但我想通过DB2本身解析它。即获取CLOB列数据并将其逐行插入另一个表中。这样的事情:
INSERT INTO TABLE1 (ID, COLUMN1) VALUES (SELECT ID, CLOBCOLUM???? FROM TABLE2)
或MERGE声明甚至更好。 所以表TABLE1看起来像这样:
ID COLUMN1
1 name1
1 name2
1 name3
这可能吗?
答案 0 :(得分:0)
您可以使用递归查询执行此操作:
WITH t(i,v,c) AS
(
SELECT id,'',clobcolum FROM TABLE2
UNION ALL
SELECT i,SUBSTR(c,1,POSSTR(c,',')-1),SUBSTR(c,POSSTR(c,',')+1) FROM t WHERE POSSTR(c,',') > 0
UNION ALL
SELECT i,c,'' FROM t WHERE c>'' AND POSSTR(c,',') = 0
)
SELECT i,v FROM t WHERE v > ''