[Seasar-user:1142] S2Dao 、 Oracle にて 4000 バイト以上の文字データを扱う場合は?

tom@spo.co.jp tom
2004年 11月 1日 (月) 20:52:39 JST


はじめまして。うちまと申します。

Oracle9iでS2Daoを利用しています。一つどうしたものかと悩んでいる事があります。

Oracle9iの1フィールドで4000バイト以上の文字列データを扱おうと、CLOB型を利用
してテーブルを作成しました(LONG型は不便が多いのでCLOB型を利用しました)。こ
こでやっと気づいたのですが、CLOB型をS2DAOでどのように取り扱えばよいのか。

java.sql.Clob をメンバの型に利用してみました。selectによる文字列の取得はEnti
tyで別途Clobから文字列へ変換し値を返すメソッドを作成する事でうまく行っていま
す。次にinsert。java.sql.Clobにどのように文字列をセットしてよいのやらさっぱ
り分からず。ここで作業が停止しています。

他にはjava側ではClobフィールドを扱う部分はjava.lang.Stringを利用し、SQL文はS
QLファイルで独自作成(PL/SQL)して insertを実現しようと試みました。S2Daoテス
トのログは意図した通りのSQL文を発行し更新しているように見えましたが、直後に
件数を確認したところ更新件数は0件。エラーは特にありませんでした。ログ中のSQL
をコピーしてSQL*Plusで実行すると更新出来ました。

S2Daoを利用の皆さんはこのようなOracleにて1フィールドのサイズが4000バイトを超
えるケースはどのように実現させているのでしょうか?





Seasar-user メーリングリストの案内