Db2:如何在db2中部署Oracle PL / SQL包?

时间:2017-08-16 12:42:41

标签: sql plsql db2 plsql-package

我尝试在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 - 回滚成功完成。

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

1 个答案:

答案 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编译。