ページの先頭行へ戻る
Interstage Big DataComplex Event Processing Server V1.1.0 開発リファレンス
FUJITSU Software

1.2.12 データベースアクセス

データベース(RDB)に対するSQL問合せの結果をイベントストリームに結合できます。from句において、以下の構文で指定します。

構文:

sql:データベース名 [" SQL問合せ "] または
sql:データベース名 [' SQL問合せ ']

データベース名には、RDB参照定義において指定した「開発資産ID」を指定します。

SQL問合せは、二重引用符(")または引用符(')で囲んで、さらにその外側を角括弧“[”および“]”で囲んで指定します。

SQL問合せの中には代替パラメーターを含めることができます。代替パラメーターは ${} の形式で記述し、文の実行時に式が評価されます。


注意

  • RDBの参照は、複合イベント処理機能の性能劣化につながる可能性があるため、必要最小限にしてください。

  • 複合イベント処理言語から参照するテーブル名やテーブルの項目名などのRDB側の定義名には、日本語を使用できません。項目の値には日本語を使用できます。

  • 引用符(')で囲んだSQL問合せの中で、引用符(')で囲んだ文字定数を記述する場合には、エスケープ表記(\')またはUnicode表記(\u0027)を使います。


RDB参照の使用例

複合イベント処理ルール(select文)の中でのRDB参照の使用例です。

@Name("PutRecommend")
@SoapListener("soap-001")
select tvevnt.gatewayId as gatewayId,
case when db.DRY_FUNC = '1' then 'USE_DRY_FUNC' else 'HANG_LAUNDRY_INSIDE' end as recommendId
from TVControlRain as tvevnt,
sql:app_db[ 'SELECT DRY_FUNC FROM PRODUCTFUNC_TBL WHERE HGW_ID=${tvevnt.gatewayId}' ] as db;
  • 使用するRDB参照定義の開発資産IDは「app_db」を設定しています。

  • RDBのテーブル「PRODUCTFUNC_TBL」を参照しています。

  • RDBのテーブル参照の条件に、代替パラメーター「${tvevnt.gatewayId}」を指定しています。

  • 参照結果には別名「db」をつけ、select文の中で利用しています。