- - PR -
StringをCLOB型の情報として戻したい
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-02 17:24
Odakazさん:
確かに今見ると、nullで初期化してるんだから java.lang.NullPointerException が発生するのは理解できます。 でも何で初期化すればいいのか分からなかったんです・・・。 new を使おうとするとエラーがでるのでとりあえず(!)nullにしていました。 DB接続せずにClobを使う場合、どのように宣言(初期化?)すればいいのでしょう? koeさん: setCharacterStream()の使い方がまだよくわかっていないため、 テストプログラムが作成できず、動作確認ができていません。 すみません。 | ||||||||
|
投稿日時: 2004-09-02 21:57
Clobはインタフェースなので、そのままnewはできませんね。 JDKのAPIドキュメントを見ると
とあるので、PreparedStatementなら、setCharacterStreamでストリームを設定してDBに流し込むとか、ResultSetなら、getCharacterStreamでClobへのストリームを取得して、Clobの内容を取得するとか、そういう使い方になるんじゃないでしょうか。 追記: 今回はストアドプロシージャということなので、koeさんがおっしゃる通り、CallableStatementのインスタンスに対して、対象データに接続したストリームを設定してやればいけそうな気もします。 [ メッセージ編集済み 編集者: Odakaz 編集日時 2004-09-02 21:59 ] [ メッセージ編集済み 編集者: Odakaz 編集日時 2004-09-02 22:07 ] | ||||||||
|
投稿日時: 2004-09-03 11:03
2004-09-02 14:10 の投稿で、
java.sql.Clobではなくoracle.sql.CLOBでの CLOB情報の取扱いのソースを書かせて頂きましたが、 java.sql.Clobでも同様の処理の流れで D/BにCLOB列を用意し、その列に対してSelectをかけて ロケータを取得、そのロケータに対する WriterやReaderを取得してClobデータを操作する・・・ というようになりそうです。 javaの中でConnectionを張りたくない(D/Bとは切り離したい) ので、Clobを取り扱うのは諦めることにしました。 チャンク化してデータを取り扱うことにします。 皆様、有難うございました。 | ||||||||
