我尝试在Db2中创建一个Oracle PL / SQL包,但遇到了错误。
CREATE OR REPLACE PACKAGE ARITHMETIC AS
function add (
first number,
second number)
return number;
END ARITHMETIC;
CREATE OR REPLACE PACKAGE BODY ARITHMETIC AS
function add(
first number,
second number)
return number AS
BEGIN
return first + second;
END add;
END ARITHMETIC;
当我运行上面的代码时,会导致以下错误:
部署[tnbdr] DB2INST1.ARITHMETIC正在运行 DB2INST1.ARITHMETIC - 已开始部署以进行调试。 创建PL / SQL包规范返回SQLCODE:-104,SQLSTATE:42601。 DB2INST1.ARITHMETIC:1:找到意外的令牌“PACKAGE” 在“创建或替换”之后。预期的代币可能包括:
“VIEW”.. SQLCODE = -104,SQLSTATE = 42601,DRIVER = 4.18.60 在“创建或替换”之后发现了意外的令牌“PACKAGE”。预期的代币可能包括:“VIEW”.. SQLCODE = -104, SQLSTATE = 42601,DRIVER = 4.18.60 DB2INST1.ARITHMETIC - 部署以进行调试失败。 DB2INST1.ARITHMETIC - 回滚成功完成。
如何部署软件包,为什么会失败?
答案 0 :(得分:1)
Db2支持在database is set up for Oracle compatibility:
时编译/创建PL / SQL包db2set DB2_COMPATIBILITY_VECTOR=ORA
db2stop
db2start
DB2_COMPATIBILITY_VECTOR中的位12启用PL / SQL编译。