如何在Teradata中定义没有Cursor的FOR LOOP?
其实我的代码是这样的:
CREATE PROCEDURE TEST1()
BEGIN
DECLARE VAR1 VARCAHR(200);
DECLARE VAR2 VARCAHR(200);
FOR FOR_LOOP1 AS CUR_NAME CURSOR FOR
DO
---------SQL STATEMENT-------
FOR FOR_LOOP2 AS CUR_NAME1 CURSOR FOR
DO
---------SQL STATEMENT-------
END FOR;
END FOR;
END;
我需要在Teradata中执行NESTED CURSOR或FOR LOOP,通过获取第一个游标值的输出,我需要执行第二个游标。
请任何人指导我!
答案 0 :(得分:0)
看起来您曾在Oracle上工作过: - )
虽然在Teradata中可以使用您提供的语法,但不推荐使用它,因为游标本质上是顺序的,而Teradata是并行DBMS。游标已经是邪恶的,但嵌套游标更糟糕。
可以重写大多数处理数据的游标,例如使用窗口聚合函数(最好的情况),看看George Coleman's blog
您能提供实际代码吗?