我必须根据db2和oracle数据库的查询结果生成一系列插入语句。在实践中从像这样的查询
select g.id from SUV_OWNER.gruppi g
WHERE EXISTS (SELECT 1 FROM SUV_OWNER.GRUPPIRUOLIPROCEDURE grp WHERE grp.gruppoid=g.gruppoid
AND GRP.RUOLOID = 50)
AND
G.CHIAVE LIKE 'ANA%';
生成预先未知的数字序列作为输出
30000
30001
.....
我必须为每个数字生成一个插入语句
insert into SUV_OWNER.GRUPPIRUOLIPROCEDURE (GRUPPOID, RUOLOID, PROCEDURAID) values (30000, 141, 7);
insert into SUV_OWNER.GRUPPIRUOLIPROCEDURE (GRUPPOID, RUOLOID, PROCEDURAID) values (30001, 141, 7);
我是sql的新手,我该如何生成这个插入序列?
感谢您的帮助
答案 0 :(得分:1)
这很简单。只需获取现有查询,然后修改SELECT
以将INSERT
语句与g.id
值连接起来。
仅供参考:||
是Oracle的字符串连接运算符。我不熟悉DB2,但我相信它支持连接字符串的相同语法。所以查询应该适用于两个数据库(我希望)。
select 'insert into SUV_OWNER.GRUPPIRUOLIPROCEDURE (GRUPPOID, RUOLOID, PROCEDURAID) values (' || g.id || ', 141, 7);'
from SUV_OWNER.gruppi g
WHERE EXISTS (
SELECT 1
FROM SUV_OWNER.GRUPPIRUOLIPROCEDURE grp
WHERE grp.gruppoid=g.gruppoid
AND GRP.RUOLOID = 50)
AND G.CHIAVE LIKE 'ANA%';