我正在尝试编写一个简单的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
答案 0 :(得分:2)
不要在存储过程声明中使用DECLARE
关键字。删除它,它应该编译。