Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何通过DB2SELECT语句本身解析CLOB cloumn?_Sql_Db2 - Fatal编程技术网

Sql 如何通过DB2SELECT语句本身解析CLOB cloumn?

Sql 如何通过DB2SELECT语句本身解析CLOB cloumn?,sql,db2,Sql,Db2,我有一个带有CLOB列的表(文本由新行或逗号分隔)。 例如,CLOBCOLUM=“name1,name2,name3…” 我可以阅读它并用Java(逐行)进行解析 但是我想用DB2本身来解析它。即获取CLOB列数据并将其逐行插入另一个表中。诸如此类: INSERT INTO TABLE1 (ID, COLUMN1) VALUES (SELECT ID, CLOBCOLUM???? FROM TABLE2) 或者合并语句更好。 因此,表1如下所示: ID COLUMN1 1 name1

我有一个带有CLOB列的表(文本由新行或逗号分隔)。 例如,CLOBCOLUM=“name1,name2,name3…” 我可以阅读它并用Java(逐行)进行解析

但是我想用DB2本身来解析它。即获取CLOB列数据并将其逐行插入另一个表中。诸如此类:

INSERT INTO TABLE1 (ID, COLUMN1) VALUES (SELECT ID, CLOBCOLUM???? FROM TABLE2)
或者合并语句更好。 因此,表1如下所示:

ID   COLUMN1
1    name1
1    name2
1    name3

这可能吗?

您可以通过递归查询实现这一点:

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 > ''

仅从“选择零件”开始。你能写一个吗,你几乎完成了。那么我如何选择将CLOB提取为数组呢?可能是在存储过程中完成的。
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 > ''