Обнаружен символ «конец файла» при ожидании одного из следующих - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь напечатать ряд Фибоначчи в plsql

, это процедура

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 pragmaподнять возврат выбрать обновление, в то время как при << закрыть текущий удалить выборку заблокировать вставить открыть отката точка сохранения установлена ​​sql выполнить коммит для слияния канал </p>

1 Ответ

1 голос
/ 20 апреля 2019

Удалите 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;
/

дб <> скрипка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...