2013-10-28 5 views
0

Я создал хранимую процедуру и скомпилировал ее без ошибок. Однако, когда я называю это в дозорном блоке, он возвращает сообщение об ошибке PLS-00201: identifier 'DUE_FOR_RAISE' must be declared. Что кажется неправильным? Что-то не так с процедурой вызова? Это то, что я называл процедурой: BEGIN due_for_raise('Austin'); END;Oracle PL/SQL: вызов хранимой процедуры с параметрами

ответ

1

Это потому, что вы указали название своей процедуры (никогда не делайте этого). Вы должны вызвать его в кавычки и точно же корпусе, как вы использовали, чтобы назвать процедуру, так:

BEGIN 
    "due_for_raise"('Austin'); 
END; 

Если бы легче бросить старую процедуру, и заново создать его без имени в кавычках ,

Цитирую из документации на Database Object Names and Qualifiers:

Oracle не рекомендует использовать идентификаторы в кавычках для имен объектов базы данных. Эти цитируемые идентификаторы принимаются SQL * Plus, но они могут быть недействительными при использовании других инструментов, которые управляют объектами базы данных.

+0

Я никогда не думал, что это имеет значение, поскольку APEX добавляет это автоматически к каждой процедуре, которую я создаю. В любом случае, спасибо огромное! – Wabbit

Смежные вопросы