【发布时间】:2012-03-03 03:48:47
【问题描述】:
我正在使用 Oracle sql developer 编写一个 oracle 包,我得到了这个编译错误:
错误(7,1):PLS-00103:遇到符号“CREATE”。
create or replace
PACKAGE TestPackage AS
FUNCTION beforePopulate RETURN BOOLEAN;
FUNCTION afterPopulate RETURN BOOLEAN;
END TestPackage;
CREATE OR REPLACE PACKAGE BODY TestPackage AS
FUNCTION beforePopulate RETURN BOOLEAN AS
BEGIN
DELETE FROM TEST_1;
INSERT INTO TEST_1
SELECT * FROM TEST WHERE VALUE=300;
COMMIT;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END;
FUNCTION afterPopulate RETURN BOOLEAN AS
BEGIN
UPDATE TEST SET RESULT="completed" WHERE VALUE=300;
COMMIT;
RETURN TRUE;
EXCEPTION
WHEN OTHERS RETURN FALSE;
END;
END;
END TestPackage;
如果我在第 6 行添加/,则错误变为:
错误(6,1):PLS-00103:遇到符号“/”
我厌倦了这样的空实现:
create or replace
package package1 as
END PACKAGE1;
CREATE OR REPLACE
package body package1 as
end package1;
我也犯了同样的错误。
【问题讨论】:
-
使用 IDE,这里有几个错误应该在 Toad 或类似编辑器中跳出,例如:BEGIN afterPopulate 应该是 FUNCTION afterPopulate,select * from TEST 应该是 select blah into v_blah from TEST.. .其他问题以及
-
并将其加入书签以供以后参考:docs.oracle.com/cd/E11882_01/appdev.112/e25519/toc.htm
-
谢谢你,tbone。我什至尝试过这样的空实现:create or replace package package1 as END PACKAGE1;创建或替换包体包 1 作为结束包 1;我也犯了同样的错误。
-
将其作为脚本运行(将每个 / 放在自己的行):创建或替换包 test1 为 end test1;/ 创建或替换包体 test1 为 end test1;/
-
如果你可以...作为脚本运行...哦,很高兴你让它工作了 :)