Class SqlPlaceHolderReplacer

java.lang.Object
nablarch.core.db.statement.sqlloader.SqlPlaceHolderReplacer
All Implemented Interfaces:
SqlLoaderCallback

public class SqlPlaceHolderReplacer extends Object implements 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 Details

    • SqlPlaceHolderReplacer

      public SqlPlaceHolderReplacer()
  • Method Details

    • processOnAfterLoad

      public String processOnAfterLoad(String sql, String sqlId)
      Description copied from interface: SqlLoaderCallback
      SQL文ロード後の加工処理を行う。 引数で与えられたSQL文に対して任意の処理を行うことができる。 本メソッドの戻り値で加工後のSQL文を返却しなければならない。
      Specified by:
      processOnAfterLoad in interface SqlLoaderCallback
      Parameters:
      sql - ロードされたSQL文
      sqlId - 元SQLのSQL_ID
      Returns:
      処理実行後のSQL文
    • setPlaceHolderValuePair

      public void setPlaceHolderValuePair(Map<String,String> placeHolderValuePair)
      プレースホルダーと値のペアを設定する。
      Parameters:
      placeHolderValuePair - プレースホルダーと値のペア