CURSOR%NOTFOUND
在 Teradata 中找到的 Oracle 的等价物是什么?
如果没有,那么我如何翻译下面的代码以在 Teradata 中运行。
OPEN OPEN_CUR1;
LOOP
FETCH OPEN_CUR1 INTO ... some variables ...;
EXIT WHEN OPEN_CUR1%NOTFOUND;
CLOSE OPEN_CUR1;
谢谢
CURSOR%NOTFOUND
在 Teradata 中找到的 Oracle 的等价物是什么?
如果没有,那么我如何翻译下面的代码以在 Teradata 中运行。
OPEN OPEN_CUR1;
LOOP
FETCH OPEN_CUR1 INTO ... some variables ...;
EXIT WHEN OPEN_CUR1%NOTFOUND;
CLOSE OPEN_CUR1;
谢谢
有关 Teradata 中 CURSOR 处理/行为的详细信息,请参阅http://www.info.teradata.com/do_redirect.cfm?itemid=062280010中的第 47 页
基本上与OPEN_CUR1%NOTFOUND
Teradata 中的 Oracle 相同的是,SQLSTATE
它设置为7362
和SQLCODE
to '02000'
... 来处理这个问题,您可以查看第 49、76、192-198、405 ff 页。的上述文件。
编辑 - 根据评论:
来自第 49 页的示例
CREATE PROCEDURE sp1 (OUT par1 CHARACTER(50))
BEGIN
DECLARE var1 INTEGER;
DECLARE projcursor CURSOR FOR
SELECT projid, projectdesc
FROM project;
OPEN projcursor;
WHILE (SQLCODE = 0)
FETCH projcursor INTO var1, par1;
END WHILE;
FETCH projcursor INTO var1, par1;
CLOSE projcursor;
END;
他们使用WHILE (SQLCODE = 0)
这基本上意味着“一切都很好并且数据可用”。