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---------------'
説明
local-data-type を、 LONG VARCHAR、 LONG VARGRAPHIC、 DATALINK、 ラージ・オブジェクト (LOB) タイプ、またはユーザー定義タイプにすることはできません (SQLSTATE 42806)。
data-source-data-type は、組み込みデータ・タイプでなければなりません。 ユーザー定義タイプを指定することはできません。 タイプに短形式と長形式 (たとえば、CHAR と CHARACTER) がある場合には、 短形式を指定してください。
注
所定の作業単位 (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)