String から Clob オブジェクトを作成する必要がある状況があります。問題は、そのメソッドに ConnectionManager を含めることができないことです。
次のようなユーティリティが必要です
public Clob getClob(String data){
}
どうすればこれを作ることができるか誰か教えてください。
orce.sql.CLOB もあります。ただし、オブジェクトを作成するには Connection が必要です。
別の答えをまだ探している人は、以下に示すように、接続オブジェクトを必要とせずに Clob オブジェクトを作成できます。
Clob myClob = new javax.sql.rowset.serial.SerialClob(stringData.toCharArray());
警告をスローします: Clob が初期化されていません。
Oracle データベースを使用して Clob を作成するには、OracleConnection が必要です。
OracleConnection conn; // initialize this first
Clob myClob = conn.createClob();
private OracleConnection conn = null;
public void setConnection( OracleConnection conn )
{
this.conn = conn;
}
void setClob( String cookie ) throws SQLException
{
Clob myClob = conn.createClob();
myClob.setString( 1, cookie);
}
これを試して :
OracleConnection conn; // initialize this first
CLOB clob = conn.createClob();
public Clob getClob(String data){
return clob.setString(position, data);
}
JSONをフィールドに保存する必要がある場合と同様の問題がありました。BLOB または CLOB を Java オブジェクトとして使用する必要はありませんが、1 つとして格納できます。
ORACLEデータベース(言語を話す際に常に問題を引き起こすデータベース)を使用している場合、私の答えをまとめるために、次の形式をガイドまたはベストプラクティスとして使用します。これは、オラクルのドキュメント自体に基づいており、問題を解決します。
@Lob @Basic(fetch=LAZY)
@Column(name="REPORT")
protected String report;
ご覧のとおり、データをラングリングするために使用する変数は文字列 (変換は不要) ですが、LOB として格納されます。
幸運を!