SQL 解説書

CREATE FUNCTION MAPPING

CREATE FUNCTION MAPPING ステートメントは、以下の目的で使用されます。

呼び出し

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

許可

このステートメントの許可 ID には、SYSADM 権限または DBADM 権限がなければなりません。

構文

>>-CREATE FUNCTION MAPPING--+-----------------------+---FOR----->
                            '-function-mapping-name-'
 
                          .-,----------------.
                          V                  |
>-----+-function-name--(-----+------------+--+---)--+----------->
      |                      '-data-type--'         |
      '-SPECIFIC--specific-name---------------------'
 
>-----+-SERVER--server-name--------------------------------------------------------------------+>
      '-SERVER TYPE--server-type--+----------------------------------------------------------+-'
                                  '-VERSION--| server-version |--+------------------------+--'
                                                                 '-WRAPPER--wrapper-name--'
 
>-----+-----------------------+--+------------+----------------><
      '-| function-options |--'  '-WITH INFIX-'
 
server-version
 
|---+-version--+--------------------------+-+-------------------|
    |          '-.--release--+---------+--' |
    |                        '-.--mod--'    |
    '-version-string-constant---------------'
 
function-options
 
                .-,---------------------------------------------------.
                V  .-ADD--.                                           |
|---OPTIONS--(-----+------+---function-option-name--string-constant---+---)-->
 
>---------------------------------------------------------------|
 

説明

function-mapping-name
関数マッピングを指定します。 この名前は、カタログですでに記述されている関数マッピングを指定するものであってはなりません (SQLSTATE 42710)。

function-mapping-name を省略すると、システムが生成した固有の名前が割り当てられます。

function-name
マップ元となる関数または関数テンプレートの修飾名または非修飾名。

data-type
入力パラメーターのある関数または関数テンプレートの場合、 data-type はそのようなパラメーターのデータ・タイプを指定します。 data-type は、LONG VARCHAR、LONG VARGRAPHIC、DATALINK、 ラージ・オブジェクト (LOB) タイプ、またはユーザー定義タイプにはできません。

SPECIFIC specific-name
マップ元の関数または関数テンプレートを指定します。 連合データベースにおいて、関数または関数テンプレートに、 固有の function-name がない場合、specific-name を指定してください。

SERVER server-name
マップ先の関数を含むデータ・ソースを指定します。

TYPE server-type
マップ先の関数を含むデータ・ソースのタイプを指定します。

VERSION
server-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 に示されたタイプおよびバージョンの データ・ソースと対話するために、連合サーバーが使用するラッパーの名前を指定します。

OPTIONS
使用可能にする関数マッピング・オプションを指定します。 function-option-name とその設定の詳細は、 関数マッピング・オプションを参照してください。

ADD
1 つ以上の関数マッピング・オプションを使用可能にします。

function-option-name
関数マッピング、またはマッピングに含まれるデータ・ソース関数のいずれかに適用される、 関数マッピング・オプションを指定します。

string-constant
function-option-name の設定を、文字ストリング定数として指定します。

WITH INFIX
データ・ソース関数が infix 形式で生成されることを指定します。

例 1: 関数テンプレートを、 すべての Oracle データ・ソースでアクセスできる UDF にマップします。 このテンプレートは STATS といい、NOVA というスキーマに属するものです。 Oracle UDF は STATISTICS といい、STAR というスキーマに属しています。

   CREATE FUNCTION MAPPING MY_ORACLE_FUN1
      FOR NOVA.STATS ( DOUBLE, DOUBLE )
      SERVER TYPE ORACLE
      OPTIONS ( REMOTE_NAME 'STAR.STATISTICS' )

例 2: BONUS という関数テンプレートを、 ORACLE1 という Oracle データ・ソースで使われている UDF (これも BONUS という) へマップします。

   CREATE FUNCTION MAPPING MY_ORACLE_FUN2
      FOR BONUS()
      SERVER ORACLE1
      OPTIONS ( REMOTE_NAME 'BONUS')

例 3: 連合データベースに対して定義されている WEEK システム関数と、 Oracle データ・ソースに対して定義されている同様の関数との間で、 デフォルトの関数マッピングが行われているとします。 Oracle データを要求し、WEEK を参照する照会が処理されると、 オーバーヘッドを少なくするために最適化プログラムで設定したところに応じて、 WEEK 関数またはその Oracle 側の関数のいずれかが呼び出されます。 DBA は、そのときの照会で WEEK だけが呼び出された場合に、 パフォーマンスがどの程度影響を受けるかを確認するようにします。 WEEK が呼び出されることを毎回確認するには、 DBA はマッピングを使用不可にしなければなりません。

   CREATE FUNCTION MAPPING
      FOR SYSFUN.WEEK(INT)
      TYPE ORACLE
      OPTIONS ( DISABLE 'Y' )

例 4: ローカル関数 UCASE(CHAR) を、 ORACLE2 という Oracle データ・ソースで使っている UDF へマップします。 Oracle UDF の呼び出しごとの見積命令数を組み込みます。

   CREATE FUNCTION MAPPING MY_ORACLE_FUN4
      FOR SYSFUN.UCASE(CHAR)
      SERVER ORACLE2
      OPTIONS 
         ( REMOTE_NAME 'UPPERCASE',
         INSTS_PER_INVOC '1000' )       


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