8
私はpostgreSQL DBからclobを読み込み、変更して書き戻そうとしています。postgreSQLを使用したCLOBへの文字列
私は正常に次のコードを使用してCLOB読むことができました:私は「
Clob newClob = connection.createClob();
を:
PreparedStatement statement = connection.prepareStatement("SELECT clob_column from data where id = 1");
ResultSet executeQuery = statement.executeQuery();
executeQuery.next()
Clob fetchedClob = executeQuery.getClob("clob_column");
しかし、私が使用して新しいデータで新しいCLOBを作成しようとしています次のエラーが発生しました:
java.lang.AbstractMethodError: com.mchange.v2.c3p0.impl.NewProxyConnection.createClob()Ljava/sql/Clob;
さらに、フェッチされたclobを編集しようとすると、
fetchedClob.setString(0, "new string");
私は次のエラーを取得しています:
Method org.postgresql.jdbc4.Jdbc4Clob.setString(long,str) is not yet implemented.
任意のアイデア?
アップデート:ここでテーブル定義は
CREATE TABLE data ( id bigint NOT NULL, clob_column text,);
おかげ
(PostgreSQLは、そう私はあなたが
text
を使用していると仮定clob
データ型を持っていません)。 getStringを使用しようとしたとき、私はその意味を理解していない数字を返します(おそらく実際のデータ長ですか?)。 getClobを実行してその文字ストリーム(getCharacterStream)を見ると、DBに保存されているXML全体が取得されます。 –@BenBracha:あなたは私たちにすべてを見せるわけではありません。 'getString()'は 'text'カラムでうまく動作します。あなたのテーブル定義を表示してください(あなたの質問を編集してください)。 –
上記の更新。 私のアプリケーションで使用されているorg.postgresql.jdbc3.AbstractJdbc3ClobがClobのすべてのset *を実装していないことも確認しました。 どうすればよいですか? また、Hibernateを使用することを追加する必要があります。このテーブルの対応するエンティティには、@ Lobでマークされたcolumn_textフィールドがあります。 –