简体   繁体   English

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

[英]Db2: How to deploy an Oracle PL/SQL package in db2?

I tried to create an Oracle PL/SQL package in Db2, but ran into errors. 我试图在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;

When I run the above code, it results in the following error: 当我运行上面的代码时,它导致以下错误:

Deploy [tnbdr]DB2INST1.ARITHMETIC Running DB2INST1.ARITHMETIC - Deploy for debug started. 部署[tnbdr] DB2INST1.ARITHMETIC正在运行DB2INST1.ARITHMETIC-已开始部署调试。 Create PL/SQL Package Specification returns SQLCODE: -104, SQLSTATE: 42601. DB2INST1.ARITHMETIC: 1: An unexpected token "PACKAGE" was found following "CREATE OR REPLACE ". 创建PL / SQL包规范将返回SQLCODE:-104,SQLSTATE:42601。DB2INST1.ARITHMETIC:1:在“ CREATE OR REPLACE”之后找到了意外的标记“ PACKAGE”。 Expected tokens may include: 预期的令牌可能包括:

"VIEW".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60 An unexpected token "PACKAGE" was found following "CREATE OR REPLACE ". “ VIEW” .. SQLCODE = -104,SQLSTATE = 42601,DRIVER = 4.18.60在“创建或替换”之后找到了意外的标记“ PACKAGE”。 Expected tokens may include: "VIEW".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60 DB2INST1.ARITHMETIC - Deploy for debug failed. 预期的令牌可能包括:“ VIEW” .. SQLCODE = -104,SQLSTATE = 42601,DRIVER = 4.18.60 DB2INST1.ARITHMETIC-调试部署失败。 DB2INST1.ARITHMETIC - Roll back completed successfully. DB2INST1.ARITHMETIC-回滚成功完成。

How can I deploy the package, why is it failing? 如何部署该软件包,为什么会失败?

Db2 supports the compilation / creation of PL/SQL packages when the database is set up for Oracle compatibility : 数据库设置为与Oracle兼容时,Db2支持PL / SQL包的编译/创建:

db2set DB2_COMPATIBILITY_VECTOR=ORA
db2stop
db2start

Bit 12 in the DB2_COMPATIBILITY_VECTOR enables PL/SQL compilation. DB2_COMPATIBILITY_VECTOR中的位12启用PL / SQL编译。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM