Синтаксическая ошибка при объявлении переменных в процедуре pl/sql

Это сводит меня с ума. Я пытаюсь добавить переменную в процедуру, но она не работает - я только что получил это сообщение об ошибке:

[Ошибка] Проверка синтаксиса (25: 7): ОШИБКА, строка 25, столбец 7, конец_ строки 25, окончание_кол 12, найденное "число", ожидание:; -или- ..:= ПО УМОЛЧАНИЮ НЕ НУЛЬ-или- % - или- ( . @

Я описал очень простую процедуру, описанную ниже, чтобы изолировать проблему, и теперь я полностью застрял, так как каждое руководство по базовому синтаксису, которое я выглядело, говорит о том, чтобы делать то, что я сделал. Почему я не могу объявить переменные, как показано ниже? Обычно я пишу код на SQL Server, если есть какая-то подсказка к моей проблеме. Большое спасибо, если кто-нибудь может помочь!

CREATE OR REPLACE PROCEDURE MRCS.pro_xxx_test1 (cats out sys_refcursor)
IS

declare

spoon number;

balls varchar2(3);

BEGIN

 open cats for select * from dual;

   end;

/

4 ответа

Решение

Убрать "ЗАЯВИТЬ". Не требуется в объявлении функции / процедуры

CREATE OR REPLACE PROCEDURE MRCS.pro_xxx_test1 (cats out sys_refcursor)
IS
spoon number;
balls varchar2(3);
BEGIN
 open cats for select * from dual;
end;
/

Объявите локальный варибал между блоком IS и BEGIN для процедуры и функции.

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПРОЦЕДУРУ MRCS.pro_xxx_test1 (убивает sys_refcursor) IS номер ложки; шары varchar2(3);

НАЧАТЬ

открыть кошек для выбора * из двойного;

конец;

/

Ключевое слово «Объявить» не требуется для создания переменных в процедуре. Объявите локальную переменную между блоками IS и BEGIN для процедуры и функции.

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПРОЦЕДУРУ MRCS.pro_xxx_test1 (выходит из sys_refcursor)IS номер ложки; шары varchar2(3); НАЧИНАТЬ

      open cats for select * from dual;

конец;

Другие вопросы по тегам