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 中嵌套循环连接和哈希连接的区别

为啥冒泡排序需要嵌套循环?

理解 javascript 嵌套 for 循环的问题 [关闭]

PL / SQL嵌套循环(循环内循环)

具有深度嵌套数组循环的 SQL 查询 OpenJson

如何在 React Js 中使用 map 实现嵌套循环