Teradata 动态插入 - 循环?

Teradata Dynamic Insert - Looped?

我正在做的事情与 dnoeth 对这个问题的第二条评论非常相似:

我需要 运行 多次循环相同的插入语句,但“?”的值不同我不知道该怎么做。

我的版本中的动态值是一个日期跨度。我无法在不假脱机的情况下 运行 进行大量插入,因此我将数据分成了多个部分。

谢谢。

威廉,

如您所知,您需要使用游标遍历要处理的每个值。

为此,将动态创建的 INSERT 语句存储到变量中。

最后一步:使用EXECUTE IMMEDIATE命令运行插入存储在teradata变量

中的语句

这是您可以参考的工作示例

REPLACE PROCEDURE td_user.sp_dynamic_insert( OUT proc_msg VARCHAR(5000) )
BEGIN

DECLARE lv_insert_txt      VARCHAR(20000);

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN          
/* Error handling code if required */
END;

L0: 
FOR insert_cursor AS select_list
CURSOR FOR    
    SELECT Col2 
    FROM   test_1

DO  
   SET lv_insert_txt = 'INSERT INTO test_2(Col1,Col2) VALUES('||TRIM(insert_cursor.Col2)||','||TRIM(insert_cursor.Col2)||')';


   EXECUTE IMMEDIATE lv_insert_txt;
END FOR L0;

SET proc_msg = 'Procedure completed successfully';
END;