0

我正在尝试编写一个简单的 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对象无效。我调查了错误的含义,它似乎通常是指程序中的编译错误,但由于我可以在没有程序声明的情况下运行代码,我猜声明部分是罪魁祸首。我只是不知道是什么原因造成的,我希望有人能够对此有所了解并为我指明正确的方向

谢谢,

阿什什

其他详情:

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

1 回答 1

2

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

于 2010-05-10T17:15:35.247 回答