Uploaded image for project: 'S2Container'
  1. S2Container
  2. CONTAINER-427

[S2JDBC] SQL ファイルを使ったバッチ更新で,SQL ファイルに IF コメントや埋め込み変数コメントが使われているとエラーにする指定をできるようにしました.

XMLWordPrintable

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 2.4.43
    • Affects Version/s: 2.4.42
    • Component/s: S2JDBC
    • None

      SqlFileBatchUpdateImplでは、最初に解析されたSQLをキャッシュしaddBatchする仕様だと思いますが、
      SQLファイルに、条件によってWhere句や更新カラムを変更するようなIFコメントが含まれている場合、
      意図しないSQLが実行されてしまうことがあります。

      SQLのWhere句や更新カラムが変わってしまうようなOGNL式が含まれている場合は
      Exception等throwしていただくことは可能でしょうか?

      【例、UPDATE文で動的にSET句がかわる場合】

       
      UPDATE
      	TEST_TABLE
      SET
      	/*IF batchDD == '01'*/
      	,CULUMNS01 = /*value*/1
      	/*END*/
      	/*IF batchDD == '02'*/
      	,COLUMNS02 = /*value*/1
      	/*END*/
      WHERE
      	DATE_YM = /*dateYm*/'201004'
      

      最初にbatchDD=01だと、

       
      UPDATE
      	TEST_TABLE
      SET
      	CULUMNS01 = 1
      WHERE
      	DATE_YM = '201004'
      

      というSQL文になります。

      2行目が、仮にbatchDDが02でCULUMNS02にいれたいとしても、
      キャッシュされたCULUMNS01をUPDATEするSQLが利用され値がCOLUMNS01に入ります。

            Assignee:
            koichik koichik
            Reporter:
            saori murooka saori murooka
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: