存储过程SQL exasol



我有一个包含大量数据的表,它需要被分解成块并传递给插入查询。我需要为此编写一个存储过程存储过程的逻辑是这样起草的(也可以改进):

VARIABLE= SELECT COUNT (*) FROM TABLE1
RUN_LOOP= (VARIABLE / 10) +1
COUNTER = 1
start= 0
END_ALL =1000
BEGIN
WHILE @COUNTER <@RUN_LOOP
SELECT * FROM TABLE2
WHERE RN BETWEEN @start+1  AND @END_ALL 

COUNTER = COUNTER+1
@start=END_ALL + 1
@END_ALL = END_ALL+1000
END

循环值应该如何改变:

VARIABLE    RUN_LOOP    COUNTER start    END_ALL
3125           4           1      0      1000
3125           4           2      1001   2000
3125           4           3      2001   3000
3125           4           4      3001   4000

您可以使用Lua脚本完成此操作。参考这里的文档。

最新更新