没有光标的Teradata For Loop

时间:2016-02-04 10:41:00

标签: teradata plsqldeveloper

如何在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,通过获取第一个游标值的输出,我需要执行第二个游标。

请任何人指导我!

1 个答案:

答案 0 :(得分:0)

看起来您曾在Oracle上工作过: - )

虽然在Teradata中可以使用您提供的语法,但不推荐使用它,因为游标本质上是顺序的,而Teradata是并行DBMS。游标已经是邪恶的,但嵌套游标更糟糕。

可以重写大多数处理数据的游标,例如使用窗口聚合函数(最好的情况),看看George Coleman's blog

您能提供实际代码吗?