[Seasar-user:3250] Re: ALTER文を動的に
Hirotaka HONMA
manhole
2006年 2月 22日 (水) 08:41:50 JST
本間です。
on Wed, 22 Feb 2006 01:24:24 +0900
in [Seasar-user:3246] ALTER文を動的に
"J.r0ck" <[E-MAIL ADDRESS DELETED]> wrote:
> J.r0ckです
>
> かなりディープな使い方なのでだめもとで質問です。
>
> S2JDBCでALTER文を発行したいのですが
> ALTER文を動的に生成したいのです。
>
> 要件としては、データ移行ツールを作っていまして
> ALTER SEQUENCE SEQ_PAGE_ID RESTART WITH 1000;
> の1000部分を移行データの最大シーケンスID+1で動的に変更したいと
> いうわがままな内容です。
>
> ALTER文なので1000の部分はバインドできないのは周知なんですが
> diconでは
> <component name="ResetSequenceHandler"
> class="org.seasar.extension.jdbc.impl.BasicUpdateHandler">
> <property name="sql">
> <![CDATA[
> "ALTER SEQUENCE SEQ_PAGE_ID RESTART WITH"
> ]]>
> </property>
> </component>
> としといて、handler.execute()の前にSQL文をいじくる方法ってないでしょうか?
ぱっと思いつきですが、「埋め込み変数コメント」ではどうでしょ
うか?
http://s2dao.seasar.org/ja/s2dao.html#SQLBind
ALTER SEQUENCE SEQ_PAGE_ID RESTART WITH /*$seqno*/1000
という感じでできそうに思います。
# S2JDBCではなくS2Daoが必要かも...
# QUERYアノテーションを使用するとかで。
---
本間 宏崇 /** Hirotaka HONMA */
[E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内