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.26 使用例(REPLACE_DB関数)