sql - 如何循环PL/SQL的:=a+2;

标签 sql loops for-loop plsql syntax-error

DECLARE

a number(20):=5;
BEGIN
    FOR a in 1..20 LOOP
    dbms_output.put_line('value: '|| a);

    a:=a+2;

    END LOOP;

    END;

错误是:

Error report: ORA-06550: line 8, column 5: PLS-00363: expression 'A' cannot be used as an assignment target ORA-06550: line 8, column 5: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action:



我怎样才能做到这一点?

最佳答案

for循环中的a是for循环索引,是只读的。
注意,for循环中的a是隐式声明的,与a部分中的declare不同。

这在documentation中进行了解释。

如果要在循环内修改变量a的值,只需为for循环索引指定另一个名称:

DECLARE
a number(20):=5;
BEGIN
    -- Note that no declaration of b is necessary
    FOR b in 1..20 LOOP
        dbms_output.put_line('value: '|| a);
        a:=a+2;
    END LOOP;
END;

关于sql - 如何循环PL/SQL的:=a+2;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20246556/

相关文章:

mysql - 如何从 varchar 类型值中选择最大数量

php - 如何使用 PHP/SQL 构建树形 View ?

python - for 循环连接字符串

php - 在 PHP 中使用 for 循环显示表中的所有条目

javascript - 在javascript中循环访问 "function"对象

Java使用for循环打印日历(逻辑帮助)

java - 使用 for 循环 Java 理解多线程

mysql - 我的全外连接错误在哪里?

c++ - 在一个程序中使用 for、while、do-while 循环

mysql - hh错误 : Error 1215: Cannot add foreign key constraint: MULTI VALUED REFERENCED TABLE