DB:的Oracle 11g有没有办法在指定提交计数时执行INSERT INTO SELECT语句?
有没有办法做到像下面这样:
INSERT INTO T1
(V1, V2)
COMMIT EVERY X
AS
SELECT (V1, V2) FROM T2;
我知道我如何通过游标循环,而是寻找一些更精简。
PL/SQL很好,但没有循环。
使用SQL提示也很好。
如果这只是甲骨文无法处理的事情,悲伤随之而来(大多数情况下,我只是好奇,因为我已经有另一种方法工作了)。
注意:该应用程序有数千亿记录。数百万是每天创建的。 INSERT INTO SELECT不适用于如此大的数据集。特别是在同时运行同样大的组时。
正如你从答复中看到的那样,通常没有中间提交的共识,我非常同意。不过,我很好奇,为什么你想要一个中间的提交?有什么需要? – Wolf 2012-04-16 15:54:34
你能解释一下“不起作用”吗?数据仓库在加载期间在不同会话中同时执行大量的INSERT ... SELECT语句是相对常见的。 – 2012-04-16 18:57:34
针对我为什么要这样的问题:应用程序有数千亿记录。数据每天数百万次。 INSERT INTO SELECT不适用于如此大的数据集。特别是在同时运行同样大的组时。游标和FORALL也笨重和丑陋。但主要是,我只是好奇。 – ScrappyDev 2012-04-16 18:58:16