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

时间:2010-05-10 16:07:22

标签: 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来运行该过程,我收到以下错误消息:

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

1 个答案:

答案 0 :(得分:2)

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