機械翻訳について

3 ケース・スタディ

次のInformixのケース・スタディでは、Oracle Databaseゲートウェイのいくつかの機能について説明します。 配布メディアに含まれているデモンストレーション・ファイルを使用して、ゲートウェイがインストールされ、正しく動作していることを確認できます。

デモンストレーション・ファイルは、ゲートウェイのインストール時に自動的にディスクにコピーされます。

トピック:

3.1 ケース摘要

次の例が示されます:

  • 単純な問合せ(ケース1)

  • より複雑な問合せ(ケース2)

  • 「Informixへの参加」表(ケース3)

  • 書込み機能(ケース4)

  • データ・ディクショナリ問合せ(ケース5)

  • パススルー機能(ケース6)

3.2 配布メディアの内容

配布メディアには次のものが含まれます:

  • デモンストレーション・ファイル

  • Informixデータベースにデモンストレーション表を作成する1つのSQLスクリプト・ファイル

  • Informixデータベースからデモンストレーション表を削除する1つのSQLスクリプト・ファイル

3.3 デモンストレーション・ファイル

ゲートウェイが正常にインストールされたら、$ORACLE_HOME/dg4ifmx/demoディレクトリに格納されているデモンストレーション・ファイルを使用します。$ORACLE_HOMEは、ゲートウェイがインストールされている$ORACLE_HOMEディレクトリです。 このディレクトリには次のデモンストレーション・ファイルが含まれています:

デモンストレーション・ファイル デモンストレーション・ファイル

bldifmx.sql

case4c.sql

case1.sql

case5.sql

case2.sql

case6a.sql

case3.sql

case6b.sql

case4a.sql

case7.sql

case4b.sql

dropifmx.sql

3.4 デモンストレーション要件

ケース・スタディでは、次の要件が満たされていることを前提としています:

  • ゲートウェイのデモンストレーション表は、Informixデータベースにインストールされます

  • Oracleデータベースには、SCOTTという名前のアカウントがあり、パスワードはTIGERです

  • Oracleデータベースには、GTWLINKというデータベース・リンク(ユーザーSCOTTに対してパブリックまたはプライベートとして設定)があり、ゲートウェイをInformixデータベースにパスワードTIGER2SCOTTとして接続

    たとえば、次のようにデータベース・リンクを作成できます:

    SQL> CREATE DATABASE LINK GTWLINK CONNECT TO SCOTT
      2    IDENTIFIED BY TIGER2 USING 'GTWSID';
    
  • Oracle Net Servicesは正しく構成され、実行されています。

  • Informix環境変数INFORMIXDIRが正しく設定されています。

3.5 デモンストレーション表の作成

ケース・スタディは、GTW_EMP表、GTW_DEPT表およびGTW_SALGRADE表に基づいています。 デモンストレーション表がInformixデータベースに作成されていない場合は、次のように、 bldifmx.sqlスクリプトを使用して作成します:

環境変数DELIMIDENTを設定します。

BourneシェルまたはKornシェルを使用している場合、次のように入力します。

$ DELIMIDENT = y; export DELIMIDENT

Cシェルを使用している場合、次のように入力します。

$ setenv DELIMIDENT y

$ cd $ORACLE_HOME/dg4ifmx/demo$ dbaccess database_name bldifmx.sql

このスクリプトは、Informixデータベースにデモンストレーション表を作成します:

CREATE TABLE GTW_EMP (
EMPNO      SMALLINT NOT NULL 
ENAME      VARCHAR(10),
JOB        VARCHAR(9),
MGR        SMALLINT,
HIREDATE   DATETIME,
SAL        NUMERIC(7,2),
COMM       NUMERIC(7,2),
DEPTNO     SMALLINT)
CREATE TABLE GTW_DEPT (
DEPTNO     SMALLINT NOT NULL,
DNAME      VARCHAR(14),
LOC        VARCHAR(13)) 
CREATE TABLE GTW_SALGRADE (
GRADE      MONEY,
LOSAL      NUMERIC(9,4),
HISAL      NUMERIC(9,4))

3.5.1 デモンストレーション表の定義

次の表定義では、SQL*PLUS DESCRIBEコマンドによって取得される情報を使用します:

GTW_EMP

Name                            Null?    Type
------------------------------- -------- ----
EMPNO                           NOT NULL NUMBER(5)
ENAME                                    VARCHAR2(10)
JOB                                      VARCHAR2(9)
MGR                                      NUMBER(5)
HIREDATE                                 DATE
SAL                                      NUMBER(7,2)
COMM                                     NUMBER(7,2)
DEPTNO                                   NUMBER(5)

GTW_DEPT

Name                            Null?    Type
------------------------------- -------- ----
DEPTNO                          NOT NULL NUMBER(5)
DNAME                                    VARCHAR2(14)
LOC                                      VARCHAR2(13)

GTW_SALGRADE

Name                            Null?    Type
------------------------------- -------- ----
GRADE                                    NUMBER(19,4)
LOSAL                                    NUMBER(9,4)
HISAL                                    NUMBER(9,4)

3.5.2 デモンストレーション表の内容

Informix表の内容は次のとおりです:

GTW_EMP

EMPNO ENAME   JOB         MGR   HIREDATE   SAL   COMM   DEPTNO
----- -----   ---         ---   --------   ---   ----   ------
7369  SMITH   CLERK       7902  17-DEC-80   800             20
7499  ALLEN   SALESPERSON 7698  20-FEB-81  1600   300       30
7521  WARD    SALESPERSON 7698  22-FEB-81  1250   500       30
7566  JONES   MANAGER     7839  02-APR-81  2975             20
7654  MARTIN  SALESPERSON 7698  28-SEP-81  1250  1400       30
7698  BLAKE   MANAGER     7839  01-MAY-81  2850             30
7782  CLARK   MANAGER     7839  09-JUN-81  2450             10
7788  SCOTT   ANALYST     7566  09-DEC-82  3000             20
7839  KING    PRESIDENT         17-NOV-81  5000             10
7844  TURNER  SALESPERSON 7698  08-SEP-81  1500     0       30
7876  ADAMS   CLERK       7788  12-JAN-83  1100             20
7900  JAMES   CLERK       7698  03-DEC-81   950             30
7902  FORD    ANALYST     7566  03-DEC-81  3000             20
7934  MILLER  CLERK       7782  23-JAN-82  1300             10

GTW_DEPT

DEPTNO DNAME          LOC 
----- -------------- --------
   10 ACCOUNTING     NEW YORK
   20 RESEARCH       DALLAS
   30 SALES          CHICAGO
   40 OPERATIONS     BOSTON 

GTW_SALGRADE

GRADE      LOSAL      HISAL
------     ------     -----
    1        700      1200
    2       1201      1400
    3       1401      2000
    4       2001      3000
    5       3001      9999

3.6 ケース1: 単純な問合せ

ケース1は、次のことを示しています:

  • 単純な問合せ。

  • 完全な日付情報を取得する単純な問合せ。

最初の問合せでは、GTW_DEPTからすべてのデータが取得され、ゲートウェイが正しく動作していることが確認されます。 2番目の問合せでは、ALTER SESSIONコマンドによってセッションのデフォルトの日付書式がDD-MON-YY HH24:MM:SSに設定されているため、採用日の時間部分を含むすべてのデータがGTW_EMPから取得されます。

3.7 ケース2: より複雑な問合せ

ケース2は、次のことを示しています:

  • SELECTリストの関数 SUM( expression )およびNVL( expr1, expr2 )

  • GROUP BY句およびHAVING句。

この問合せでは、月次経費の合計が$10,000より大きい部門がGTW_EMPから取得されます。

3.8 ケース3: Informix表の結合

ケース3は、次のことを示しています:

  • Informix表間の結合。

  • Subselects.

この問合せでは、3つのInformix表から情報が取得され、従業員がその部門名と給与等級に関連付けられますが、平均給与より多く支給される従業員のみが対象となります。

3.9 ケース4: 書込み機能

ケース4は3つのケースに分割され、次のことを示しています:

3.9.1 DELETE文

ケース4aは、バインド値とサブ選択を示しています。 部門20のすべての従業員と部門30の1人の従業員WARDが削除されます。

3.9.2 UPDATE文

ケース4bは、単純なUPDATE文の例を示しています。 この例では、従業員に月給の$100が与えられます。

3.9.3 INSERT文

ケース4cは、すべての列の情報を提供しない単純な挿入文の例です。

3.10 ケース5: データ・ディクショナリ問合せ

ケース5はデータ・ディクショナリ・マッピングを示しています。 GTWで始まるInformixデータベースに存在するすべての表およびビューを取得します。

3.11 ケース6: パススルー機能

ケース6は、アプリケーションがInformixにコマンドまたは文を送信できるようにするゲートウェイ・パススルー機能を示しています。

このケースでは、次のことを示しています:

  • バインド変数を使用したパススルーUPDATE

  • パススルーSELECT

3.11.1 UPDATE文

ケース6aは、バインド変数を使用したパススルーUPDATE文の例を示しています。 この例では、EMPNO 7934の給与は4000に設定されています。

3.11.2 SELECT文

ケース6bは、パススルーSELECT文の例を示しています。 SELECT文から返されたデータは、Oracleデータベースのローカル表に挿入されます。