期望以下之一时遇到符号“”:

Encountered the symbol " " when expecting one of the following:

我已经创建了一个程序来确定某一年是否为闰年,或者 not.i 从匿名块调用我的程序。 这是我的代码

declare 
x number;
y number;
procedure leap(z IN number) IS
BEGIN
if(z%400=0)
then
dbms_output.put_line('leap year');
elsif(z%100=0)
then
dbms_output.put_line('not a leap year');
elsif(z%4=0)
then
dbms_output.put_line('leap year');
else
dbms_output.put_line('Not a year');
end if;
END;
BEGIN
y:=&y;
p1(y);
END;

我收到这些错误: PLS-00103:在期望以下之一时遇到符号“400”:

类型 ORA-06550:第 9 行,第 9 列: PLS-00103:在期望以下之一时遇到符号“100”:

类型 ORA-06550:第 12 行,第 9 列: PLS-00103:在期望以下之一时遇到符号“4”:

类型 06550.00000 - "line %s, column %s:\n%s" *原因:通常是 PL/SQL 编译错误。 *动作:

试试这个:

declare 
x number;
y number;
procedure leap(z IN number) IS
BEGIN
if REMAINDER(z,400)=0
then
dbms_output.put_line('leap year');
elsif REMAINDER(z,100)=0
then
dbms_output.put_line('not a leap year');
elsif REMAINDER(z,4)=0
then
dbms_output.put_line('leap year');
else
dbms_output.put_line('Not a year');
end if;
END;
BEGIN
y:=&y;
p1(y);
END;