機械翻訳について

3 ケース・スタディ

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

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

トピック:

ケースの内容

ケースの内容は次のとおりです。

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

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

  • Informix表の結合(ケース3)

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

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

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

配布メディアの内容

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

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

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

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

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

ゲートウェイのインストールが成功したら、$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

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

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

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

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

  • Oracleデータベースには、GTWLINKという名前のデータベース・リンクがあり(SCOTTにpublicまたはprivateとして設定)、ゲートウェイをInformixデータベースにパスワードTIGER2SCOTTとして接続

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

    SQL> CREATE DATABASE LINK GTWLINK CONNECT TO SCOTT
      2    IDENTIFIED BY TIGER2 USING 'GTWSID';
    
  • Oracle Net Servicesが正常に構成され、稼働していること

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

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

ケース・スタディは、GTW_EMPGTW_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))

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

次の表定義では、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)

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

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

GTW_EMP

EMPNO ENAME   JOB         MGR   HIREDATE   SAL   COMM   DEPTNO
----- -----   ---         ---   --------   ---   ----   ------
7369  SMITH   CLERK       7902  17-DEC-80   800             20
7499  ALLEN   SALESMAN    7698  20-FEB-81  1600   300       30
7521  WARD    SALESMAN    7698  22-FEB-81  1250   500       30
7566  JONES   MANAGER     7839  02-APR-81  2975             20
7654  MARTIN  SALESMAN    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  SALESMAN    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

ケース1: 単純な問合せ

ケース1では、次の内容について説明します。

  • 単純な問合せ

  • 日付情報をすべて取り出す単純な問合せ

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

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

ケース2では、次の内容について説明します。

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

  • GROUP BYHAVING句。

この問合せは、月間総経費が$10,000よりも高いGTW_EMPから部門を取得します。

ケース3: Informix表の結合

ケース3では、次の内容について説明します。

  • Informix表間の結合。

  • サブセレクト

この問合せでは、3つのInformix表から情報を取得し、従業員を部門名と給与グレードに関連付けますが、平均給与を超える従業員にのみ関連します。

ケース4: 書込み機能

ケース4は、3つのケースに分かれており、次の内容について説明します。

DELETE文

ケース4aでは、バインド値とサブセレクトについて説明します。 部門20のすべての従業員と部門30の1つの従業員WARDが削除されます。

UPDATE文

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

INSERT文

ケース4cでは、すべての列について情報を指定しない単純なINSERT文の例を示します。

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

ケース5はデータ辞書のマッピングを示しています。 Informixデータベースに存在し、"GTW"で始まるすべての表とビューを取得します。

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

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

このケースでは次の内容について説明します。

  • バインド変数を使用するパススルーUPDATE

  • パススルーSELECT

UPDATE文

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

SELECT文

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