Oracle アプリケーションを使用可能にするための Db2 環境のセットアップ

Db2 環境を適切にセットアップすれば、Db2 データ・サーバーで Oracle アプリケーションを動作可能にするための時間や労力を削減できます。

始める前に

  • Db2 データ・サーバー製品をインストールする必要があります。
  • db2set コマンドを実行するために、SYSADM 権限および適切なオペレーティング・システム権限が必要です。
  • CREATE DATABASE コマンドを発行するには、SYSADM 権限または SYSCTRL 権限が必要です。

このタスクについて

Db2 製品では、他のデータベース製品によって一般的に使用されるフィーチャーの多くがサポートされます。 このタスクは、Db2 インターフェースから Oracle データ・タイプを参照する PL/SQL ステートメントまたは SQL ステートメントを実行したり、その他の SQL 互換フィーチャーを使用したりするための前提条件になります。 Db2 互換フィーチャーはデータベース・レベルで有効にします。 無効にすることはできません。

プロシージャー

Oracle アプリケーションを Db2 データ・サーバーで動作可能にする手順は、以下のとおりです。

  1. Db2 コマンド・ウィンドウで、次のコマンドを発行して Db2 データベース・マネージャーを開始します。
    db2start
  2. DB2_COMPATIBILITY_VECTOR レジストリー変数を以下のいずれかの値に設定します。
    • 使用する特定の互換フィーチャーを有効にする 16 進値。
    • 以下のコマンドに示すように、すべてのDb2 互換フィーチャー ORAを利用します。 これが推奨値です。
    db2set DB2_COMPATIBILITY_VECTOR=ORA
  3. 以下に示すように、 DB2_DEFERRED_PREPARE_SEMANTICS レジストリー変数を YESに設定して、据え置き準備サポートを有効にします。
    db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES
    DB2_COMPATIBILITY_VECTOR レジストリー変数を ORA に設定した場合に、DB2_DEFERRED_PREPARE_SEMANTICS レジストリー変数を設定しないと、SBCS や Unicode データベースの環境ではデフォルト値の YES が使用されます。 DBCS 環境の場合、デフォルト値は YES_DBCS_GRAPHIC_TO_CHAR です。
  4. db2stop コマンドを発行して、データベース・マネージャーを停止します。
    db2stop
    
  5. db2start コマンドを発行して、データベース・マネージャーを開始します。
    db2start
  6. CREATE DATABASE コマンドを発行して、 Db2 データベースを作成します。 デフォルトで、データベースは Unicode データベースとして作成されます。
    例えば、DB という名前のデータベースを作成するには、次のコマンドを実行します。
    db2 CREATE DATABASE DB
  7. オプション: コマンド行プロセッサー・プラス (CLPPlus) スクリプトまたはコマンド行プロセッサー (CLP) スクリプト ( script.sqlなど) を実行して、データベースが PL/SQL ステートメントおよびデータ・タイプをサポートしていることを確認します。
    次の CLPPlus スクリプトは、シンプルなプロシージャーを作成して呼び出します。
    CONNECT user@hostname:port/dbname;
    
    CREATE TABLE t1 (c1 NUMBER);
    
    CREATE OR REPLACE PROCEDURE testdb(num IN NUMBER, message OUT VARCHAR2)
    AS
    BEGIN
     INSERT INTO t1 VALUES (num);
    
     message := 'The number you passed is: ' || TO_CHAR(num); 
    END;
    /
    
    CALL testdb(100, ?);
    
    DISCONNECT;
    EXIT;
    CLPPlus スクリプトを実行するには、以下のコマンドを実行します。
    clpplus @script.sql  
    以下の例は、同じスクリプトの CLP バージョンを示しています。 このスクリプトでは、SET SQLCOMPAT PLSQL コマンドを使用して、新規の行でスラッシュ文字 (/) が PL/SQL ステートメント終了文字として認識されるようにします。
    CONNECT TO DB;
    
    SET SQLCOMPAT PLSQL;
    
    -- Semicolon is used to terminate
    -- the CREATE TABLE statement:
    CREATE TABLE t1 (c1 NUMBER);
    
    -- Forward slash on a new line is used to terminate
    -- the CREATE PROCEDURE statement:
    CREATE OR REPLACE PROCEDURE testdb(num IN NUMBER, message OUT VARCHAR2)
    AS
    BEGIN
     INSERT INTO t1 VALUES (num);
    
     message := 'The number you passed is: ' || TO_CHAR(num); 
    END;
    /
    
    CALL testdb(100, ?);
    
    SET SQLCOMPAT DB2;
    
    CONNECT RESET;
    CLP スクリプトを実行するには、以下のコマンドを実行します。
    db2 -tvf script.sql

結果

作成した Db2 データベースが Oracle アプリケーションで使用可能になりました。 これで、有効にした互換フィーチャーが使用できるようになります。 Oracle アプリケーションから使用可能なのは、DB2_COMPATIBILITY_VECTOR レジストリー変数の設定後に作成されたデータベースのみです。

注: データベースの作成後に DB2_COMPATIBILITY_VECTOR レジストリー変数を変更しないでください。 詳しくは、この 技術情報を参照してください。

次の作業

  • CLPPlus インターフェースの使用を開始します。
  • PL/SQL スクリプトとステートメントを実行します。
  • データベース・オブジェクト定義を転送します。
  • データベース・アプリケーションを使用可能にします。