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句に指定できない入力データのタイプは以下のとおりです。
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.26 使用例(REPLACE_DB関数)