Я пытаюсь написать простую хранимую процедуру Oracle:
CREATE OR REPLACE PROCEDURE act.skeleton
IS
DECLARE
v_rowCount NUMBER;
BEGIN
SELECT COUNT(1) INTO v_rowCount FROM ex.emp;
DBMS_OUTPUT.PUT_LINE(v_rowCount);
END;
Однако, когда я пытаюсь выполнить процедуру, введя execute act.skeleton
в командном окне PL / SQL Developer, я получаю следующее сообщение об ошибке:
ORA-06550: line 1, column 11:
PLS-00905: object ACT.SKELETON is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Я попытался просто запустить код без оператора процедуры создания, и он успешно работает с отображаемым выводом. Я пробовал оба варианта CREATE OR REPLACE PROCEDURE IS
& CREATE OR REPLACE PROCEDURE AS
, но все равно получаю ту же ошибку.
Я не уверен, имеет ли это какое-либо отношение к авторизации или видимости процедуры, когда я пытаюсь ее выполнить, или к тому, что делает объект act.skeleton
недействительным. Я рассмотрел, что означает ошибка, и, похоже, она обычно относится к ошибке компиляции в процедуре, но, поскольку я могу запустить код без объявления процедуры, я предполагаю, что фрагмент объявления является виновником. Я просто не знаю достаточно, чтобы понять, что является причиной этого, и я надеялся, что кто-то сможет пролить на него немного света и указать мне правильное направление
Спасибо
Ashish
Другие детали:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production