0

http経由でファイルをアップロードしてサーバーに保存する必要があるJava Webアプリケーションがあります。ファイルは Oracle データベース内の特定のレコードに関連付ける必要があるため、関連付けられたレコードへの参照、ファイルへの参照、およびタイトルなどの他の説明データを格納するテーブルがデータベース内に存在します。オプションこのテーブルは次のように表示されます。

  • ファイルを BLOB として保存する
  • ファイルへの BFILE 参照を格納します
  • ファイルへのパスを含む文字列を保存します

ファイルをデータベースの外に保存したいので、BLOB として保存しません。DBA は、参照を BFILE として格納することを推奨するオプションであると述べています。oracle.sql.BFILE オブジェクトは、ファイルを読み取るための InputStream へのアクセスを提供しますが、それに書き込む明白な方法はありません。

ストレージ ディレクトリへの唯一の参照が Oracle ディレクトリ エイリアスである場合、ファイル データをディスクに書き戻す最良の方法は何ですか?


シンプルな java.io がファイルへの書き込みに最適な方法であると判断しました。つまり、ストレージ ディレクトリはマウントとして Web アプリケーション サーバーで使用できる必要があります。いずれにせよ、ディレクトリは webapp で使用できるため、BFILE は不要であると判断し、代わりにファイル名をデータベースに格納するだけにしました。

4

2 に答える 2

1

Oracle JDBC Developers Guide - 14.6 Working with BFILEsによると:

  • BFILE は読み取り専用です。データを挿入したり、BFILE に書き込むことはできません。
  • JDBC を使用して新しい BFILE を作成することはできません。それらは外部でのみ作成されます。

そのため、データを Oracle ストレージ ディレクトリにアップロードするには、別のツール/方法が必要なようです。これにより、BFILE はシナリオに適していない可能性があります。

于 2009-07-14T10:04:01.980 に答える