Oracle10gを使用しています。
■やりたい事
VB6より、下記の拡張子でDBへ保存をしたい。
・.pdf
・.tif
・.xls
テーブルを作成し、
>CREATE TABLE lob_tab (id NUMBER(7) PRIMARY KEY,blob_col BLOB)
BLOB型の【blob_col】に保存を行いたいのですが、
上記の拡張子で保存が行えるかどうか判りませんでしたので、
記載いたしました。
どなたか、御存知ないでしょうか?
私はOracleは使わないのですが・・・
http://bbs.wankuma.com/index.cgi?mode=al2&namber=11285&KLOG=25
これ参考になりますか?
以上。
オショウさんありがとうございます。
試してみて、DBに保存と登録されたデータを出力することができました。
もう1点質問ですが、LOBを使用するにあたり懸念事項や
制限が決められているものなど、画像ファイルを管理する際、
気をつけないといけない点を調べようと思いますが、
詳しくない為、何をもとに調べたらよいかわかりません。
御存知の方いますでしょうか?
SI Object Browser9です。
懸念事項ですが、
LOBを使用する際に、容量に関して一番重要なことが判りました。
その際に最初に見積もっておかないと後々容量が不足してしまう結果
となることがわかったのですが、下記について不明点があります。
・1ファイルのサイズが130KBほどあり、1日200件ほどの登録が発生します
その際のどのように見積もったらよいでしょうか?
よろしくお願い致します。
SQL Server使いなもので、Oracleにはそぐわないと思いますが
基本、バイナリの可変容量フィールドを使った場合のDBの増加
とフラグメンテーションによる速度低下・・・と言う問題があ
ろうかと・・・
この場合の容量増加に関してどのように見積もるかは、Oracle
の仕様になるので、その辺を調べてもらわないと解りませんが
仮に130KBのファイルの容量そのままイコールがDB側に確保され
るとは思えません。あう一定レコードサイズの整数倍の容量が
準備されそこに保存されるかと。
私も画像を蓄積するシステム構成には携わりましたが、10年
を経過しています。ここまでの長期間使われる可能性を考慮し
実はDB内に画像を保存することはせず、画像の保存先パスを、
文字列として格納するようにし、別のバーティションに画像保
存しています。尚、フルパスではなくファイル名のみ。
ドライブ・フォルダ名は別の情報として保存し、読み出す場合
にパスを合成して生成するようにしてます。
こうすることで、DBの増加は計算で行えますし、融通が利く上
フラグメンテーションによる速度低下も、定期的なメンテナン
スで十分に回復することができました。
DBの再構築も短時間で済みますし・・・
どうしてもバイナリデータをDBに保存したいと言うのであれば
テスト的に130KBのバイナリデータを、
1ケ月分×12ケ月として、1年分作っていくその途中経過を
モニターしてやれば、概算解るかと・・・
※ 逆に言えば200件程度なので、それも可能かと・・・
日に1万件も登録・・・ともなれば1ファイルが小さいとは
言え、何年も動かすなら、先は読めません・・・
※ ちょうど今、200〜300KBで日500個程度の画像保存をやって
ます。当然DBには履歴データも・・・
しかしながら最低3年保存でシステムの次回更新は何年後
になるか解りません。装置が故障しない限り、使い続ける
ような状況・・・
当然画像はDB中には保存してません。
以上。参考まで・・・
返信ありがとうございます。
直接画像の登録を行わないような形で提案をしましたが、
結果、REDOログを残さない形で登録を行うようになりました。
問題が起きそうだったらそのとき考えよう・・・
という結果になりました。
アドバイスありがとうございました。
ツイート | ![]() |