【发布时间】:2011-09-16 13:18:07
【问题描述】:
我在 Oracle 中执行存储过程时遇到问题。
下面是存储过程:
CREATE OR REPLACE Procedure xxxlist
(yyyid in NUMBER)
IS
xid number(6);
cursor c1 is select distinct xxxID from MXS.Y where YID=yyyid;
BEGIN
IF NOT c1%ISOPEN THEN
OPEN c1;
END IF;
LOOP
FETCH c1 into xid;
dbms_output.put_line(TO_CHAR(xid));
EXIT WHEN c1%NOTFOUND;
END LOOP;
CLOSE c1;
END;
创建存储过程时,出现以下错误:
Warning: Procedure created with compilation errors.
我执行以下命令为我提供有关上述抽象错误消息的更多详细信息。
SHO ERR;
响应上述命令,我得到以下详细信息:
Errors for PROCEDURE XXXLIST:
LINE/COL ERROR
-------- -----------------------------------------------------------------
5/18 PL/SQL: SQL Statement ignored
5/52 PL/SQL: ORA-00942: table or view does not exist
现在,我了解到表名或 sql 查询本身存在问题。因此,我尝试在 PRODECURE 之外单独执行 SQL 查询,以查看表或查询出现了什么问题。
select distinct xxxID from MXS.Y where YID=yyyid;
但是,我没有发现上述查询有任何问题。查询运行良好,我得到了正确的结果。
所以,我不知道为什么程序在执行时出现问题。有人可以帮忙吗?
【问题讨论】:
标签: oracle stored-procedures compilation