sql plus中嵌套循环的困惑
Posted
技术标签:
【中文标题】sql plus中嵌套循环的困惑【英文标题】:Confusion in Nested loop in sql plus 【发布时间】:2012-11-28 12:29:35 【问题描述】:我在 sql*plus 中使用IF
条件,但在内循环中无法访问外循环的变量。这是我的声明:
DECLARE
LOOPSTART INT;
LOOPEND INT;
VALUE INT;
CURSOR EMPID IS (SELECT EMPNO FROM EMP);
BEGIN
SELECT EMPNO INTO LOOPSTART FROM emp WHERE ROWNUM <= 1;
SELECT MAX(EMPNO) INTO LOOPEND FROM EMP;
FOR COUNT IN LOOPSTART..LOOPEND LOOP
BEGIN
FOR EMPID1 IN EMPID LOOP
IF (EMPID1.EMPNO != COUNT) THEN
DBMS_OUTPUT.PUT_LINE(LOOPSTART);
exit;
END IF;
END LOOP;
END;
END LOOP;
END;
这个错误来了:
ORA-06550:第 13 行,第 22 列: PLS-00204:函数或伪列 'COUNT' 只能在 SQL 语句中使用 ORA-06550:第 13 行,第 2 列: PL/SQL:语句被忽略
-
声明
循环启动;
循环整数;
我哪里错了?
【问题讨论】:
将计数重命名为 count1 之类的其他名称 thnx... 半小时后才发现错误。 【参考方案1】:重命名用于 count_my 或任何其他你喜欢的东西的变量计数
【讨论】:
【参考方案2】:COUNT 是一个keywork 重命名它会起作用的 COUNT
【讨论】:
以上是关于sql plus中嵌套循环的困惑的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 中嵌套循环连接和哈希连接的区别