# REPLACE_DB関数

関数

    REPLACE_DB{CODE,DBCID,TABLE_NAME,SELECT_ITEM,WHERE_ITEM[,NOMATCHVALUE]}

データベースのテーブルから、引数で指定された条件でSQL文（SELECT文）を発行し、検索結果の値を返します。引数を使用して作成されるSQL文（SELECT文）は以下のとおりです。

    SELECT SELECT_ITEM FROM TABLE_NAME WHERE WHERE_ITEM = 入力データ

WHERE条件により複数の値をヒットした場合は、最初にヒットしたレコードを返します。なお、DBへの接続には引数DBCIDで指定されたDB接続情報と、CODEで指定されたコード種を使用します。

パラメータ

CODE

コード種を指定します。指定できるコード種は"EUC"、"SJIS"、"UTF-8"、"UTF-16LE"、"UTF-16BE"、"UTF-16"のいずれかのみです（省略不可）。

DBCID

DB接続IDを指定します（省略不可）。

TABLE_NAME

テーブル名を指定します（省略不可）。

SELECT_ITEM

値を取得したい項目名を指定します（省略不可）。

存在しない項目を指定した場合は実行時エラーとなります。

WHERE_ITEM

値を取得するための条件となる項目名を指定します（省略不可）。

バイナリ（Iタイプ）の項目は指定できません。

存在しない項目を指定した場合は実行時エラーとなります。

NOMATCHVALUE

値が取得できなかったときに使用する値を指定します（省略可）。

省略した場合、値が取得できないときは実行時エラーとなります。

注意

DBの仕様上、WHERE句に指定できない入力データのタイプは以下のとおりです。

表A.10 WHERE句に指定できない入力データタイプ

DB | TYPE
--- | ---
DB2 | BLOB
CLOB
LONG VARCHAR
DBCLOB
GRAPHIC
LONG VARGRAPHIC
VARGRAPHIC
Oracle | LONG
LONG RAW
CLOB
NCLOB
BFILE
BLOB
SQL Server | IMAGE
TEXT
NTEXT
XML
PostgreSQL | bytea

REPLACE_DB関数の機能は、マッチング機能を利用することで同様の処理を行うことが可能です。しかし、以下の条件以外の場合はマッチング機能を利用することをお勧めします。

REPLACE_DB関数をお勧めする条件

- 入力データのコード種がEBCDIC系の場合

- 参照先のDBテーブルのレコード数が多い場合（数100万レコードなど）

使用例

図A.27 使用例（REPLACE_DB関数）