2011-11-08 28 views
3

入力としてInputStreamをとるJava関数を作成しました。その関数に渡すoracle.sql.BLOBインスタンスがあります。どうすればInputStreamに変換できますか?Oracle Database BLOBからJavaのInputStreamへ?

代わりに、BLOBパラメータを使用して関数を書き直す必要がありますか?

答えて

5

oracle.sql.BLOBのJavaパラメータを"Mapping Datatypes" documentationとして宣言してください。次に、そのBLOBオブジェクトのgetBinaryStream()に電話してInputStreamを取得します。

+0

?どのようにInputStreamに変換するのですか? –

+0

@ Data-Base:答えを編集しました。 –

+0

oracle.sql.BLOBは私にエラーを与える!!! –

6

あなたは本当にあなたがデータベースからデータをフェッチしているどのように言っていないが、あなたはInputStreamを取得するためにResultSet.getBinaryStream()を使用し、またはストリームを取得するためにBlobBlobを取得するためにgetBlob()を呼び出し、その後、getBinaryStream()ことができます。

+0

私たちはPL/SQLでこれを実行するので、java関数を呼び出して結果を返すPL/SQL関数があります。 –

+0

@ Data-Base:私が使用しているクライアント技術 - ORMハイバーネイト、直接JDBC、ドライバなど –

+0

あなたは何を意味するのですか? PL/SQLからデータベースに問い合せ、関数に変数を送信します。関数は変数を使用してデータを変換し、テキストを返します。 JavaはOracle Database内のクラスとしてコンパイルされます –

関連する問題