PL/SQL パッケージのコピーの例

以下の例では、異種のデータベース間で PL/SQL パッケージをコピーする際に生成される DDL を示します。

生成された DDL は、「データベース・オブジェクトの貼り付け」ウィザードの 「DDL のプレビュー」ページに表示されます。

表 1 では、Oracle Database 11g ソース・データベースから DB2® Version 9.7 for Linux, UNIX, and Windows ターゲット・データベースへの PL/SQL パッケージのコピーで生成される DDL の例を示します。

表 1. Oracle Database 11g から DB2 Version 9.7 for Linux, UNIX, and Windows データベースへの PL/SQL パッケージのコピーの例
Oracle Database 11g の PL/SQL パッケージ定義 DB2 バージョン 9.7 データベースで生成される DDL
CREATE PACKAGE scott.trans_data AS
-- package with no body
   minimum_balance   CONSTANT REAL := 10.00;
   number_processed   INT;
   insufficient_funds EXCEPTION;
END trans_data;
/
CREATE PACKAGE scott.trans_data AS
-- package with no body
   minimum_balance   CONSTANT REAL := 10.00;
   number_processed   INT;
   insufficient_funds EXCEPTION;
END trans_data;
CREATE OR REPLACE PACKAGE test_pack1 AS
   FUNCTION create_dept
     (department_id NUMBER,
      location_id NUMBER)
      RETURN NUMBER;
END test_pack1;
/

CREATE OR REPLACE PACKAGE BODY test_pack1 AS
   tot_emps NUMBER;
   tot_depts NUMBER;
   FUNCTION create_dept
     (department_id NUMBER,
      location_id NUMBER)
      RETURN NUMBER IS
         new_deptno NUMBER;
      BEGIN
         INSERT INTO nums1 VALUES (1);
         RETURN(new_deptno);
      END create_dept;

BEGIN
   tot_emps := 0;
END test_pack1;
/
CREATE PACKAGE test_pack1 AS
   FUNCTION create_dept
     (department_id NUMBER,
      location_id NUMBER)
      RETURN NUMBER;
END test_pack1;
/

CREATE PACKAGE BODY test_pack1 AS
   tot_emps NUMBER;
   tot_depts NUMBER;
   FUNCTION create_dept
     (department_id NUMBER,
      location_id NUMBER)
      RETURN NUMBER IS
         new_deptno NUMBER;
      BEGIN
         INSERT INTO nums1 VALUES (1);
         RETURN(new_deptno);
      END create_dept;

BEGIN
   tot_emps := 0;
END test_pack1;

表 2 では、DB2 Version 9.7 for Linux, UNIX, and Windows ソース・データベースから Oracle Database 11g ターゲット・データベースへの PL/SQL パッケージのコピーで生成される DDL の例を示します。

表 2. DB2 Version 9.7 for Linux, UNIX, and Windows データベースから Oracle Database 11g への PL/SQL パッケージのコピーの例
DB2 バージョン 9.7 データベースの PL/SQL パッケージ定義 Oracle Database 11g で生成される DDL
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;
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;

フィードバック