ヘッダーをスキップ
Oracle Transparent Gateway for Microsoft SQL Server管理者ガイド
10gリリース2(10.2)for Microsoft Windows(32-bit)
B25367-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

4 ケース・スタディ

次のMicrosoft SQL Serverのケース・スタディでは、Oracle Transparent Gatewayの機能の一部について、説明します。配布CD-ROMにあるデモンストレーション・ファイルを使用すると、ゲートウェイが正常にインストールされ、機能していることが確認できます。

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

この章の内容は次のとおりです。

4.1 ケースの内容

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

4.2 CD-ROMの内容

配布CD-ROMの内容は次のとおりです。

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

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

デモンストレーション・ファイル
bldmsql.sql
case1.sql
case2.sql
case3.sql
case4a.sql
case4b.sql
case4c.sql
case5.sql
case6a.sql
case6b.sql
case7.sql
dropmsql.sql

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

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

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

ケース・スタディは、GTW_EMP、GTW_DEPT、GTW_SALGRADE表と、InsertDeptおよびGetDeptストアド・プロシージャに基づいています。デモンストレーション表とストアド・プロシージャがMicrosoft SQL Serverデータベースに作成されていない場合は、bldmsql.sqlスクリプトを使用して作成します。次のように入力します。

> isql -USCOTT -PTIGER2 -ibldmsql.sql

その結果、スクリプトによりデモンストレーション表とストアド・プロシージャがMicrosoft SQL Serverデータベースに作成されます。

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)
go

CREATE TABLE GTW_DEPT (
DEPTNO     SMALLINT NOT NULL,
DNAME      VARCHAR(14),
LOC        VARCHAR(13))
go

CREATE TABLE GTW_SALGRADE (
GRADE      MONEY,
LOSAL      NUMERIC(9,4),
HISAL      NUMERIC(9,4))
go

DROP PROCEDURE InsertDept
go

CREATE PROCEDURE InsertDept (@dno INTEGER,
   @dname VARCHAR(14), @loc VARCHAR(13))
AS INSERT INTO GTW_DEPT VALUES (@dno, @dname, @loc)
go

DROP PROCEDURE GetDept
go

CREATE PROCEDURE GetDept (@dno INTEGER, @dname VARCHAR(14) OUTPUT)
AS SELECT @dname=DNAME FROM GTW_DEPT WHERE DEPTNO=@dno
go

4.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)

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

Microsoft SQL Server表の内容は次のとおりです。

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

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

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

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

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

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

この問合せでは、毎月の合計経費が$10,000を超える部門をGTW_EMPから取り出します。

4.8 ケース3: Microsoft SQL Server表の結合

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

この問合せでは、所得が平均給与より多い従業員についてのみ、3つのMicrosoft SQL Server表から情報を取り出し、従業員を部門名と給与等級に関連付けます。

4.9 ケース4: 書込み機能

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

4.9.1 DELETE文

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

4.9.2 UPDATE文

ケース4bでは、単純なUPDATE文の例を示します。この例では、従業員の月給が$100昇給されます。

4.9.3 INSERT文

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

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

ケース5では、データ・ディクショナリのマッピングについて説明します。ここでは、Microsoft SQL Serverデータベースに存在する、GTWで始まるすべての表およびビューを取り出します。

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

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

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

4.11.1 UPDATE文

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

4.11.2 SELECT文

ケース6bでは、パススルーSELECT文の例を示します。SELECT文から返されるデータがOracleデータベース・サーバーのローカル表に挿入されます。

4.12 ケース7: ストアド・プロシージャの実行

ケース7では、Microsoft SQL Serverデータベースでストアド・プロシージャを実行するゲートウェイについて説明します。