0

我尝试在 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:在“CREATE OR REPLACE”之后发现了意外的标记“PACKAGE”。预期的令牌可能包括:

“VIEW”.. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60 在“CREATE OR REPLACE”之后发现了一个意外的标记“PACKAGE”。预期的标记可能包括:“VIEW”.. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60 DB2INST1.ARITHMETIC - 部署调试失败。DB2INST1.ARITHMETIC - 回滚成功完成。

如何部署软件包,为什么会失败?

4

1 回答 1

1

当数据库设置为与 Oracle 兼容时,Db2 支持编译/创建 PL/SQL 包:

db2set DB2_COMPATIBILITY_VECTOR=ORA
db2stop
db2start

DB2_COMPATIBILITY_VECTOR中的第 12 位启用 PL/SQL 编译。

于 2017-08-16T13:28:31.750 回答