Class SqlPlaceHolderReplacer
java.lang.Object
nablarch.core.db.statement.sqlloader.SqlPlaceHolderReplacer
- All Implemented Interfaces:
SqlLoaderCallback
SQL文中のプレースホルダーに対して置換を行うクラス。
プレースホルダーと、それに対応する置き換え後の値を設定することで、
SQL文中の任意のプレースホルダーに対して置換を行うことができる。
例えば、SQL文中でスキーマの置き換えをしたい場合、以下のようにコンポーネント設定をする。
<component class="nablarch.core.db.statement.sqlloader.SqlPlaceHolderReplacer">
<property name="placeHolderValuePair">
<map>
<entry key="#SCHEMA_A#" value="AAA"/>
<entry key="#SCHEMA_B#" value="BBB"/>
</map>
</property>
</component>
この場合、
SELECT FROM #SCHEMA_A#.TBL1 CROSS JOIN #SCEHMA_B#.TBL2
というSQL文が
SELECT FROM AAA.TBL1 CROSS JOIN BBB.TBL2
というSQL文に変換される。-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprocessOnAfterLoad
(String sql, String sqlId) SQL文ロード後の加工処理を行う。 引数で与えられたSQL文に対して任意の処理を行うことができる。 本メソッドの戻り値で加工後のSQL文を返却しなければならない。void
setPlaceHolderValuePair
(Map<String, String> placeHolderValuePair) プレースホルダーと値のペアを設定する。
-
Constructor Details
-
SqlPlaceHolderReplacer
public SqlPlaceHolderReplacer()
-
-
Method Details
-
processOnAfterLoad
Description copied from interface:SqlLoaderCallback
SQL文ロード後の加工処理を行う。 引数で与えられたSQL文に対して任意の処理を行うことができる。 本メソッドの戻り値で加工後のSQL文を返却しなければならない。- Specified by:
processOnAfterLoad
in interfaceSqlLoaderCallback
- Parameters:
sql
- ロードされたSQL文sqlId
- 元SQLのSQL_ID- Returns:
- 処理実行後のSQL文
-
setPlaceHolderValuePair
プレースホルダーと値のペアを設定する。- Parameters:
placeHolderValuePair
- プレースホルダーと値のペア
-