HELP ME!在线等!

[复制链接]
查看11 | 回复9 | 2006-4-17 13:46:34 | 显示全部楼层 |阅读模式
CREATE OR REPLACE PROCEDURE WD_PCS_GH_DB(
THIS_ID IN VARCHAR2,THIS_NUM IN VARCHAR2)
IS
L_NUM
VARCHAR2(20);
L_NOTESVARCHAR2(50);
L_DATE DATE;
BEGIN
SELECT LTRIM(RTRIM(NOTES)) AS NOTES,FINISH_DATE
INTO L_NOTES,L_DATE
FROM PCS_ASK_LIST_HIS
WHERE ASK_ID=THIS_ID;
IF SUBSTR(L_NOTES,1,4) IN ('P1A:') THEN
BEGIN
L_NUM:=SUBSTR(L_NOTES,5,7);
INSERT INTO wd_pcs_ghdb VALUES(THIS_NUM,L_NUM,L_DATE);
COMMIT;
END;
END IF;
END WD_PCS_GH_DB;


编译时,老是报ORA-00604:递归SQL层1出现错误,

ora-01000:超出打开光标的最大数
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
你把初始化参数中的open_cursors设得大点。
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
或报 ORA-06553:PLS-3220:表达式的类型不完整或畸形
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
你可以把你的数据库版本列出来?和在sql plus下运行创建过程的错误说清楚些。
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
8.0.5
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
你以SYS用户重新执行$ORACLE_HOME/rdbms/admin/catalog.sql 和catproc.sql 以及 standard.sql,并且增大open_cursors 参数重启数据库后还出现什么问题?
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
执行后所有后台存储过程需要重编译吗?
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
你可以查看dba_objects 看是否有过程的状态为INVALID,如果编译,可以使用DBMS_UTILITY.COMPILE_SCHEMA,例如:
EXEC DBMS_UTILITY.COMPILE_SCHEMA('LAB');
我不知道8有没有这个过程,我的是8i.
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
我的oracle 文件系统满了,可能是这原因
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
谢了,guoge.以后请多关照!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行