这个错误“《PLS-00801》 内部错误[79110]”是由什么引起的,我只是把
游标定义原先放在fungion外边的,
我想把游标定义放到Funtion中,就出现了这个问题,另外我在另一个plsql中也作了同样的移动,没有出现问题,我不知道原因,
游标定义原先放在fungion外边的,
我想把游标定义放到Funtion中,就出现了这个问题,另外我在另一个plsql中也作了同样的移动,没有出现问题,我不知道原因,
解决方案 »
- 请问PROC读取数据怎么是乱码?
- 请教:在SQLPLUS中如何查询空间数据,怎样才能识别CONTAINS、DISTANCE等空间分析
- 求一个start with ... connect by 层次查询的用法,比较完整的实例以及测试数据,谢谢了!
- 如何写这个简单的存储过程?
- oracle是否存在系统表存放每一张表的表名,还有每一张表的字段名?
- oracle安装基础问题
- oracle数据库开发用什么语言多一点啊?? c++?? JAVA??
- 专业地学习数据库编程--学习方式,步骤,以及相关书籍的选择,恳求高见!
- jsp中oracle的多进程管理?
- 关于在PROCEDURE中灵活实现ORDRE BY的问题,请各位在虾帮忙
- ora-00984
- 动态SQL方法4的一个问题,来自Oracle Programmer's Guide
CURSOR aaa_cursor(p_ks_cd IN VARCHAR2, p_kj_dt IN VARCHAR2) IS
SELECT SUBSTR(a.FURIDEN_NO, 1, 1) AS denpyo_sbt_kbn
,g.gamen_id AS gamen_id
,a.ks_cd AS ks_cd
FROM ar_009_tr_sknzan_tk_msi b
,ar_009_tr_sknzan_tk_head a
WHERE
a.sknzan_tuke_id = b.sknzan_tuke_id
AND a.ks_cd = b.kaisha_cd
;现在的游标位置 cur_aaa aaa_cursor%ROWTYPE; FUNCTION main
(
p_kns_fd IN VARCHAR2
,p_kj_dt IN VARCHAR2
) RETURN NUMBER IS
预定在这里定义游标
begin
--------------
------------
..............
end main;
CREATE OR REPLACE PACKAGE TEST.PAK_TEST
IS
cursor my_cur is select * from 表;
FUNCTION main(p_kns_fd IN VARCHAR2,p_kj_dt IN VARCHAR2) RETURN NUMBER ;
END;
/CREATE OR REPLACE PACKAGE BODY TEST.PAK_TEST
IS FUNCTION main(p_kns_fd IN VARCHAR2,p_kj_dt IN VARCHAR2) RETURN NUMBER
IS
cur_aaa my_cur%ROWTYPE;
BEGIN
return 1;
END;
END;
/或
CREATE OR REPLACE PACKAGE BODY TEST.PAK_TEST
IS
cur_aaa my_cur%ROWTYPE;
FUNCTION main(p_kns_fd IN VARCHAR2,p_kj_dt IN VARCHAR2) RETURN NUMBER
IS
BEGIN
return 1;
END;
END;
/
游标
CURSOR A_CURSOR() IS
SELECT A1 FROM TABLEA
;现在的游标位置:CUR_A A_CURSOR%ROWTYPE;更新一个表中的字段或多个表
PROCEDURE UPDATE_B(P_CURSOR_A A_CURSOR%ROWTYPE ) IS
BEGIN
UPDATE TABLEB
SET B1= P_CURSOR_A.A1
WHERE
条件;
END UPDATE_B;主函数
FUNCTION MAIN()RETURN NUMBER IS
预定在这里定义游标
BEING--------------
------------
..............END MAIN;
这样的话,就会出现那个错误了
你在试一下,
IS
-- 更新一个表中的字段或多个表
PROCEDURE UPDATE_B(P_CURSOR_A A_CURSOR%ROWTYPE ) IS
BEGIN
UPDATE t_dd_tx_txz
SET txz_id = '0' WHERE 1=2;
END UPDATE_B; FUNCTION main(p_kns_fd IN VARCHAR2,p_kj_dt IN VARCHAR2) RETURN NUMBER
IS
cur_aaa A_CURSOR%ROWTYPE;
BEGIN
return 1;
END;
END;
/
我在参数中使用了游标,而在main外边没有定义,是在main中定义游标的,
所以会出现“《PLS-00801》 内部错误[79110]”这个错误,解决方法:
在main外边定义一个游标,即使你没有使用它,也要定义,然后在main中定义游标,这样就不会出现这个错误了这个可能是plsql的一个bug,