機械翻訳について

3 ケース・スタディ

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

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

トピック:

3.1 ケースの説明

各ケースでは次を説明します:

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

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

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

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

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

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

  • ストアド・プロシージャの実行(ケース7)

3.2 配布メディアの内容

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

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

  • デモ表とストアド・プロシージャをSybaseデータベースに作成する1つのSQLスクリプト・ファイル

  • Sybaseデータベースからデモ表とストアド・プロシージャを削除する1つのSQLスクリプト・ファイル

3.3 デモ・ファイルへのアクセス

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

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

bldsybs.sql

case4c.sql

case1.sql

case5.sql

case2.sql

case6a.sql

case3.sql

case6b.sql

case4a.sql

case7.sql

case4b.sql

dropsybs.sql

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

ケース・スタディでは、次の要件を満たしていると想定します:

  • ゲートウェイ・デモンストレーション表とストアド・プロシージャは、Sybaseデータベースにインストールされています

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

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

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

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

  • Sybase環境変数SYBASEが正しく設定されている

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

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

$ isql -USCOTT -PTIGER2 -ibldsybs.sql

スクリプトは、デモ表とストアド・プロシージャをSybaseデータベースに適切に作成します:

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

SET CHAINED ON
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

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 デモンストレーション表の内容

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

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

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

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

  • 単純な問合せ

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

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

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

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

  • 関数 SUM( expression )NVL( expr1, expr2 )SELECTリスト

  • GROUP BYおよびHAVING

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

3.8 ケース3: Sybase表の結合

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

  • Sybase表間のジョイン

  • サブ選択

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

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は、すべての列の情報を提供しない単純なinsert文の例です。

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

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

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

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

この例では次のことを示します:

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

  • パススルーSELECT

3.11.1 UPDATE文

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

3.11.2 SELECT文

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

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

ケース7は、ゲートウェイがSybaseデータベースのストアド・プロシージャを実行する方法を示しています。

スクリプトを実行する前に、Sybaseで次のコマンドを実行して、連鎖モードがオンになっていることを確認してください:

set chained on