首页 > 解决方案 > SP2-0552:未声明绑定变量“N3”

问题描述

这是用于比较三个数字并打印最大值的代码。

declare
n1 number(2);
n2 number(2); 
n3 number(2); 
begin
n1:=&n1;
n2:=&n2:
n3:=&n3;
if n1>n2 and n1>n3 then
dbms_output.put_line('The greatest number is n1 '||n1);
else if n2>n1 and n2>n3 then
dbms_output.put_line('The greatest number is n2 '||n2);
else 
dbms_output.put_line('The greatest number is n3 '||n3);
end if;
end;
/

当我尝试在 oracle 中运行这个 pl sql 代码时,它说

old   6: n1:=&n1;
new   6: n1:=4;
Enter value for n2: 5
old   7: n2:=&n2:
new   7: n2:=5:
Enter value for n3: 6
old   8: n3:=&n3;
new   8: n3:=6;
SP2-0552: Bind variable "N3" not declared.

你能告诉我哪里错了吗???我将不胜感激

标签: sqloracleplsql

解决方案


您有 3 个错误(错别字):

  • DECLARE在开始声明变量之前,您需要关键字。
  • n2:=&n2:应该n2:=&n2;
  • else if应该是elsif(或者,如果你想保留,else if那么你需要一秒钟end if;来终止第二if条语句)
DECLARE
  n1 number(2);
  n2 number(2); 
  n3 number(2); 
begin
  n1:=&n1;
  n2:=&n2;
  n3:=&n3;
  if n1>n2 and n1>n3 then
    dbms_output.put_line('The greatest number is n1 '||n1);
  elsif n2>n1 and n2>n3 then
    dbms_output.put_line('The greatest number is n2 '||n2);
  else 
    dbms_output.put_line('The greatest number is n3 '||n3);
  end if;
end;
/

推荐阅读