Db2:如何在 db2 中部署 Oracle PL/SQL 包?
Posted
技术标签:
【中文标题】Db2:如何在 db2 中部署 Oracle PL/SQL 包?【英文标题】:Db2: How to deploy an Oracle PL/SQL package in db2? 【发布时间】:2017-08-16 12:42:40 【问题描述】:我尝试在 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” 在“创建或替换”之后。预期的令牌可能包括:
“查看”.. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60 在“CREATE OR REPLACE”之后发现了一个意外的标记“PACKAGE”。预期的标记可能包括:“VIEW”.. SQLCODE=-104, SQLSTATE=42601,驱动程序=4.18.60 DB2INST1.ARITHMETIC - 部署调试失败。 DB2INST1.ARITHMETIC - 回滚成功完成。
如何部署包,为什么会失败?
【问题讨论】:
【参考方案1】:当database is set up for Oracle compatibility:
时,DB2 支持编译/创建 PL/SQL 包db2set DB2_COMPATIBILITY_VECTOR=ORA
db2stop
db2start
DB2_COMPATIBILITY_VECTOR 中的第 12 位启用 PL/SQL 编译。
【讨论】:
以上是关于Db2:如何在 db2 中部署 Oracle PL/SQL 包?的主要内容,如果未能解决你的问题,请参考以下文章
在 DB2 PL/SQL 匿名块中声明局部变量和声明继续处理程序会导致错误?