ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
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;

スポンサード リンク



BLOBデータの登録
BLOBデータの読み出してファイルに出力する
バイナリデータを圧縮する(COMPRESS.LZ_COMPRESS )
バイナリデータを解凍する(COMPRESS.LZ_UNCOMPRESS )
CLOBデータの登録
CLOBデータを読み出してファイルに出力する
ファイルサイズを取得する(DBMS_LOB.GETLENGTH)

PL/SQL へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ