2010-05-10 2 views
0

Я пытаюсь написать простой Oracle хранимой процедуры:Простой Oracle хранимой процедуры получения Invalid ошибка объекта

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, я получить следующее сообщение об ошибке:

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 

ответ

2

не используйте DECLARE ключевое слово в хранимой процедуре декларации. Удалите это, и он должен скомпилироваться.

+0

Нравится это -> СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПРОЦЕДУРУ act.skeleton IS v_rowCount NUMBER; BEGIN SELECT COUNT (1) INTO v_rowCount FROM ex.emp; DBMS_OUTPUT.PUT_LINE (v_rowCount); КОНЕЦ; – ukanth

+0

Спасибо @Charles & @UK! Это сработало! – tundal45

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