Stored procedures 简单Oracle存储过程获取无效对象错误

Stored procedures 简单Oracle存储过程获取无效对象错误,stored-procedures,oracle10g,plsqldeveloper,Stored Procedures,Oracle10g,Plsqldeveloper,我正在尝试编写一个简单的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; 但是,当我通过在PL/SQL Developer命令窗口中发出execute act.skeleton尝试运行该过程

我正在尝试编写一个简单的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;
但是,当我通过在PL/SQL Developer命令窗口中发出
execute act.skeleton
尝试运行该过程时,会收到以下错误消息:

ORA-06550: line 1, column 11:
PLS-00905: object ACT.SKELETON is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
我尝试在不使用createprocedure语句的情况下运行代码&它在显示输出的情况下成功运行。我尝试了创建或替换过程为&
创建或替换过程为
选项,但仍然得到相同的错误

我不确定这是否与尝试执行过程时过程的授权或可见性有关,或者是什么导致
act.skeleton
对象无效。我研究了错误的含义&似乎它通常指的是过程中的编译错误,但由于我可以在没有过程声明的情况下运行代码,我猜声明部分是罪魁祸首。我只是不知道是什么导致了这一切,我希望有人能对这件事有更多的了解,并为我指明正确的方向

谢谢

阿什

其他详情:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production

不要在存储过程声明中使用
DECLARE
关键字。删除它,它就会编译。

像这样-->创建或替换过程act.skeleton是v_rowCount NUMBER;从ex.emp开始选择计数(1)到v_行计数;DBMS_OUTPUT.PUT_行(v_rowCount);结束;