【发布时间】:2013-12-27 03:12:57
【问题描述】:
我正在尝试创建一个程序,它给了我“无错误”,然后是“ORA-24344 编译错误成功” 如果我在过程中运行所有内容,它会正确执行,但是当我尝试创建包体时它不起作用。我把它缩小到这个程序:
CREATE OR REPLACE PACKAGE TEG.SPCKG_AEC_CIS_SVC_PIPE_COMP IS
TYPE OUT_CURSOR IS REF CURSOR;
PROCEDURE CreateRptTables;
END;
GRANT EXECUTE ON TEG.SPCKG_AEC_CIS_SVC_PIPE_COMP TO TEG_USER;
CREATE OR REPLACE PACKAGE BODY TEG.SPCKG_AEC_CIS_SVC_PIPE_COMP IS
--------------------------------------------------------------------------------
PROCEDURE CreateRptTables IS
/*==========================================================================
12/20/2013 TFS 24446 - Created function
==========================================================================*/
DECLARE
CURSOR Cur_Comp IS
SELECT * FROM TEG.AEC_CIS_SVC_PIPE_COMP;
BEGIN
FOR compRow in Cur_Comp LOOP
If (compRow.cis_bus_res_loop <> compRow.cis_bus_res_loop_c) Then
--Insert information into the details table
INSERT INTO TEG.AEC_CIS_SVC_PIPE_DET( Facility_id, Serv_Pipe_Num)
VALUES(compRow.Facility_ID, compRow.Serv_Pipe_Num);
End If;
END LOOP;
END;
END;
SHOW ERRORS
【问题讨论】:
-
你是说“显示错误”什么也没显示,但你得到编译错误?没有意义。您为什么不使用现代 IDE(而不是 SQLPLUS)进行开发?获取oracle的sql developer。它是免费的,而且在查找和编辑错误方面效率更高。
-
我认为如果你在另一个模式中创建对象是有意义的;即,如果您没有以
TEG身份登录。您可以查询user_errors,或者在这种情况下更像all_errors,以获取详细信息。 -
相信我,我希望我可以使用更现代的 IDE,但在公司业务中,作为一个对甲骨文一无所知的新人,我对软件方面没有太多发言权。我尝试搜索 user_errors 并没有带回任何东西。 All_errors 成功了(这是 DECLARE 关键字)