预期以下情况之一时遇到符号“文件结束”

时间:2019-04-20 19:56:52

标签: plsql plsqldeveloper

我正在尝试在plsql中打印Fibonacci系列

这是过程

CREATE OR REPLACE PROCEDURE fibos(n IN number) IS
DECLARE  
first number := 0; 
second number := 1; 
temp number;   
i number; 
BEGIN
dbms_output.put_line('Series:'); 
dbms_output.put_line(first); 
dbms_output.put_line(second); 
for i in 2..n 
loop 
temp:=first+second; 
first := second; 
second := temp; 
dbms_output.put_line(temp); 
END loop; 
END; 
/

Warning: Procedure created with compilation errors.

这是我调用过程的地方:

DECLARE
a number := &a;
BEGIN
fibos(a);
/

这是我得到的错误

fibos(a);         * 第4行出现错误: ORA-06550:第4行,第9列: PLS-00103:预期出现以下情况之一时遇到符号“文件结束” 以下: 开始情况声明结束异常退出goto if loop mod null编译指示加    <<关闭当前删除获取锁插入 打开回滚保存点设置sql执行落实所有合并 管道

1 个答案:

答案 0 :(得分:1)

DECLARE语句中删除CREATE PROCEDURE并将END;添加到调用它的匿名块中。

CREATE OR REPLACE PROCEDURE fibos(n IN number) IS
first number := 0; 
second number := 1; 
temp number;   
i number; 
BEGIN
dbms_output.put_line('Series:'); 
dbms_output.put_line(first); 
dbms_output.put_line(second); 
for i in 2..n 
loop 
temp:=first+second; 
first := second; 
second := temp; 
dbms_output.put_line(temp); 
END loop; 
END; 
/

DECLARE
a number := &a;
BEGIN
fibos(a);
END;
/

db<>fiddle