我必须根据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的新手,如何生成此插入序列?
谢谢你的帮助
很简单 只需采用您现有的查询,然后修改您的查询SELECT即可将INSERT语句与g.id值连接起来。
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%';