运行 PL/SQL 程序时出现错误 "BIND VARIABLE " N " NOT DECLARED"



我找不到一个数字的阶乘问题的错误,不知道为什么我得到它

"

SQL> declare
2  n number;
3  i number;
4  fact number;
5  begin
6  n:=:n;
7  i:=1;
8  fact:=1;
9  while i<=n loop then
10  fact:=fact*i;
11  i:=i+1;
12  end loop;
13  dbms_output.put_line('factorial of this number is ' ||fact);
14  end;
15
16  /
SP2-0552: Bind variable "N" not declared.

"

当你在SQL*Plus中运行它时,使用替换(而不是绑定)变量-用&n引用它,而不是:n:

同时,修复循环;没有then

SQL> set serveroutput on
SQL> declare
2          n number;
3          i number;
4          fact number;
5  begin
6      n := &n;
7      i := 1;
8      fact := 1;
9
10      while i <= n loop
11         fact := fact * i;
12         i := i + 1;
13      end loop;
14
15      dbms_output.put_line('factorial of this number is ' || fact);
16
17  end;
18  /
Enter value for n: 4
old   6:     n := &n;
new   6:     n := 4;
factorial of this number is 24
PL/SQL procedure successfully completed.
SQL>

最新更新