|
 |
|
|
BLOBデータの登録 |
|
スポンサード リンク
バイナリデータを登録する場合、DBMS_LOBパッケージを使用する。
例1) ファイル「c:\temp\big_star.bmp」を表「blob_sample」に格納する。
(1)表「blob_sample」のDDL
|
create table blob_sample (
blob_id char(3) primary key,
blob_data blob
);
|
(2)事前準備。バイナリファイルの格納ディレクトリ「c:\temp」のディレクトリオブジェクト「LOB_DIR」を作成する
|
-- ディレクトリオブジェクトの作成
create directory LOB_DIR as 'c:\temp';
-- ディレクトリオブジェクトに読み込み権限をユーザ「test」に付与する。
grant read on directory LOB_DIR to test;
|
(3)表「blob_sample」にファイル「c:\temp\big_star.bmp」を格納する。
|
declare
-- ファイル「c:\temp\big_star.bmp」をbfile型で生成
bmp_file bfile := bfilename( 'LOB_DIR', 'big_star.bmp');
-- 表「blob_sample」の項目「blob_data」のポインタを格納する変数を定義
v_blob_data blob;
begin
-- 表「blob_sample」に新規レコードを生成。項目「blob_data」には、空データを設定する。
-- また、項目「blob_data」のポインタを「v_blob_data」に代入する。
insert into blob_sample values( 'B01', empty_blob())
returning blob_data into v_blob_data;
-- ファイル「c:\temp\big_star.bmp」を読み込みモードでオープン
dbms_lob.fileopen( bmp_file, dbms_lob.file_readonly);
-- ファイルのデータを、項目「blob_data」に更新する。
dbms_lob.loadfromfile( v_blob_data, bmp_file, dbms_lob.getlength( bmp_file ));
-- ファイル「c:\temp\big_star.bmp」をクローズ
dbms_lob.fileclose( bmp_file );
commit;
end;
|
スポンサード リンク
|
|
|
|
|