SQL 解説書

CREATE TYPE MAPPING

CREATE TYPE MAPPING ステートメントは、 以下のデータ・タイプ間のマッピングを作成します。

マッピングを行うと、統合データベースのデータ・タイプを、 (1) 指定したデータ・ソースか (2) データ・ソースの範囲 (たとえば、 特定のタイプおよびバージョンのすべてのデータ・ソース) のいずれかにあるデータ・タイプに 関連付けることができます。

データ・タイプのマッピングは、 既存のデータ・タイプでは不十分な場合にのみ作成する必要があります。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、 あるいは動的 SQL ステートメントの使用によって発行することができます。 このステートメントは、動的に準備可能な実行可能ステートメントです。 しかし、バインド・オプション DYNAMICRULES BIND を適用する場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。

許可

このステートメントの許可 ID が持つ特権には、 SYSADM または DBADM 権限が含まれている必要があります。

構文

>>-CREATE TYPE MAPPING--+-------------------+---FROM--| local-data-type |-->
                        '-type-mapping-name-'
 
>---TO----| remote-server |--TYPE--data-source-data-type-------->
 
>-----+--------------------------------------------+-----------><
      +-FOR BIT DATA-------------------------------+
      '-(--+-p-------+---+---------+---)--+------+-'
           '-[p..p]--'   +-,s------+      +-P=S--+
                         '-,[s..s]-'      +-P>S--+
                                          +-P<S--+
                                          +-P>=S-+
                                          +-P<=S-+
                                          '-P<>S-'
 
local-data-type
 
|---+-SMALLINT---------------------------------------------------------------------+->
    +-+-INTEGER-+------------------------------------------------------------------+
    | '-INT-----'                                                                  |
    +-BIGINT-----------------------------------------------------------------------+
    +-+-FLOAT--+----------------+-+------------------------------------------------+
    | |        '-(--integer--)--' |                                                |
    | +-REAL----------------------+                                                |
    | |        .-PRECISION-.      |                                                |
    | '-DOUBLE-+-----------+------'                                                |
    +--+-DECIMAL-+---+--------------------------------+----------------------------+
    |  +-DEC-----+   '-(--integer--+-----------+---)--'                            |
    |  +-NUMERIC-+                 '-,integer--'                                   |
    |  '-NUM-----'                                                                 |
    +--+--+-CHARACTER-+---+------------+---------------------+---+---------------+-+
    |  |  '-CHAR------'   '-(integer)--'                     |   '-FOR BIT DATA--' |
    |  '--+-VARCHAR-------------------+---+----------------+-'                     |
    |     '--+-CHARACTER-+---VARYING--'   '-(--integer--)--'                       |
    |        '-CHAR------'                                                         |
    +-GRAPHIC--+------------+------------------------------------------------------+
    |          '-(integer)--'                                                      |
    +-VARGRAPHIC--+------------+---------------------------------------------------+
    |             '-(integer)--'                                                   |
    +-DATE-------------------------------------------------------------------------+
    +-TIME-------------------------------------------------------------------------+
    '-TIMESTAMP--------------------------------------------------------------------'
 
>---------------------------------------------------------------|
 
remote-server
 
|---+-SERVER--server-name-------------------------------------------------------------------------+->
    '-SERVER TYPE--server-type----+-----------------------------------------------------------+---'
                                  '-VERSION--| server-version |--+-------------------------+--'
                                                                 '-WRAPPER--wrapper-name---'
 
>---------------------------------------------------------------|
 
server-version
 
|---+-version--+--------------------------+-+-------------------|
    |          '-.--release--+---------+--' |
    |                        '-.--mod--'    |
    '-version-string-constant---------------'
 

説明

type-mapping-name
データ・タイプのマッピングに名前を付けます。 この名前は、カタログですでに記述されている データ・タイプのマッピングを指定するものであってはなりません。 type-mapping-name を指定しないと、固有の名前が生成されます。

local-data-type
統合データベースに定義したデータ・タイプを指定します。 local-data-type の指定にスキーマ名が含まれていない場合、 そのタイプ名は SQL パスのスキーマから探索することによって決まります (このパスは、 静的 SQL の場合は FUNCPATH 前処理オプションによって、 動的 SQL の場合は CURRENT PATH レジスターによって定義されます)。 local-data-type に長さや精度 (および位取り) が指定されない場合は、 source-data-type の値が使用されます。

local-data-type を、 LONG VARCHAR、 LONG VARGRAPHIC、 DATALINK、 ラージ・オブジェクト (LOB) タイプ、またはユーザー定義タイプにすることはできません (SQLSTATE 42806)。

SERVER server-name
data-source-data-type が定義されているデータ・ソースを指名します。

SERVER TYPE server-type
data-source-data-type が定義されているデータ・ソースのタイプを指定します。

VERSION
data-source-data-type が定義されているデータ・ソースのバージョンを指定します。

version
バージョン番号を指定します。 version は整数でなければなりません。

release
version で示されたバージョンのリリース番号を指定します。 release は整数でなければなりません。

mod
release で示されたリリースのモディフィケーション番号を指定します。 mod は整数でなければなりません。

version-string-constant
バージョンの正式名称を指定します。 version-string-constant は単一値 (たとえば、'8i') にすることができます。 あるいは、versionrelease、 そして該当する場合は mod を連結した値にすることができます (たとえば、'8.0.3')。

WRAPPER wrapper-name
server-type および server-version に示されたタイプおよびバージョンの データ・ソースと対話するために、統合サーバーが使用するラッパーの名前を指定します。

TYPE data-source-data-type
local-data-type にマッピングされているデータ・ソースのデータ・タイプを指定します。 data-source-data-type が、データ・ソースでスキーマ名によって修飾されている場合、 この修飾子は、使用することができますが、必須ではありません。

data-source-data-type は、組み込みデータ・タイプでなければなりません。 ユーザー定義タイプを指定することはできません。 タイプに短形式と長形式 (たとえば、CHAR と CHARACTER) がある場合には、 短形式を指定してください。

p
10 進データ・タイプの場合、 p は値を入れられる桁数の最大数を指定します。 他のすべての文字データ・タイプの場合、 p は値を入れられる最大文字数を指定します。 p は、そのデータ・タイプに関して有効なものでなければなりません (SQLSTATE 42611)。 データ・タイプで p が必要なのにこれを指定しない場合、 最もよく一致するものがシステムによって指定されます。

[p..p]
10 進データ・タイプの場合、 [p..p] は値を入れられる桁数の最小および最大数を指定します。 他のすべての文字データ・タイプの場合、 [p..p] は値を入れられる最小および最大文字数を指定します。 いずれにせよ、最大値は最小値以上の値にする必要があります。 また、最大値と最小値は両方とも、 そのデータ・タイプに関して有効なものでなければなりません (SQLSTATE 42611)。

s
10 進データ・タイプの場合、s は小数点以下の桁数の最大数を指定します。 この数値は、そのデータ・タイプに関して有効なものでなければなりません (SQLSTATE 42611)。 データ・タイプで数値が必要なのにこれを指定しない場合、 最もよく一致するものがシステムによって指定されます。

[s..s]
10 進データ・タイプの場合、 [s..s] は小数点以下の桁数の最小および最大数を指定します。 最大値は最小値以上の値にする必要があります。また、最大値と最小値は両方とも、 そのデータ・タイプに関して有効なものでなければなりません (SQLSTATE 42611)。

P [operand] S
10 進データ・タイプの場合、 P [operand] S は最大許容精度と小数点以下の最大桁数との比較を示します。 たとえば、オペランド = は、 最大許容精度と小数部分に許容できる最大桁数が同じであることを示します。 P [operand] S は、検査が必要な水準にある場合にのみ指定します。

FOR BIT DATA
data-source-data-type が、ビット・データ用かどうかを示します。 データ・ソース・タイプの列に 2 進値が含まれる場合、これらのキーワードは必須です。 この属性が文字データ・タイプで指定されていない場合、 データベース・マネージャーがこの属性を決定します。

所定の作業単位 (UOW) 内の CREATE TYPE MAPPING ステートメントは、 以下のいずれかの条件の下では処理できません。

例 1: すべての Oracle データ・ソースで、 SYSIBM.DATE と Oracle データ・タイプ DATE の間のマッピングを作成します。

   CREATE TYPE MAPPING MY_ORACLE_DATE
      FROM SYSIBM.DATE 
      TO SERVER TYPE ORACLE 
      TYPE DATE

例 2: データ・ソース ORACLE1 で、 SYSIBM.DECIMAL(10,2) と Oracle データ・タイプ NUMBER([10..38],2) との間のマッピングを作成します。

   CREATE TYPE MAPPING MY_ORACLE_DEC
      FROM SYSIBM.DECIMAL(10,2)
      TO SERVER ORACLE1
      TYPE NUMBER([10..38],2)


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]