【问题标题】:Teradata For Loop without Cursor没有光标的 Teradata For 循环
【发布时间】:2016-02-04 10:40:59
【问题描述】:

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

谁能指导我一下!

【问题讨论】:

    标签: teradata plsqldeveloper


    【解决方案1】:

    看起来你以前在 Oracle 工作过 :-)

    尽管在 Teradata 中完全可以使用您提供的语法,但不建议这样做,因为游标本质上是顺序的,而 Teradata 是并行 DBMS。游标已经很邪恶了,但是嵌套游标更糟糕。

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

    你能提供实际的代码吗?

    【讨论】:

      猜你喜欢
      • 2016-02-12
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多