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

ORACLE SQL リファレンス

Web oracle.se-free.com
CLOBデータの登録
スポンサード リンク

ロングテキストデータを登録する場合、DBMS_LOBパッケージを使用する。

例1) テキストファイル「c:\temp\aaa.txt」を表「clob_sample」に格納する。

(1)表「clob_sample」のDDL
create table clob_sample (
 clob_id char(3) primary key,
 clob_data clob
);


(2)事前準備。テキストファイルの格納ディレクトリ「c:\temp」のディレクトリオブジェクト「LOB_DIR」を作成する
-- ディレクトリオブジェクトの作成
create directory LOB_DIR as 'c:\temp';
-- ディレクトリオブジェクトに読み込み権限をユーザ「test」に付与する。
grant read on directory LOB_DIR to test;
 
(3)表「clob_sample」にファイル「c:\temp\aaa.txt」を格納する。

declare

 -- ファイル「c:\temp\aaa.txt」をbfile型で生成
 txt_file bfile := bfilename( 'LOB_DIR', 'aaa.txt');

 -- 表「clob_sample」の項目「clob_data」のポインタを格納する変数を定義
 v_blob_data clob;

begin

 -- 表「clob_sample」に新規レコードを生成。項目「clob_data」には、空データを設定する。
 -- また、項目「clob_data」のポインタを「v_clob_data」に代入する。
 insert into clob_sample values( 'C01', empty_clob())
   returning clob_data into v_clob_data;

 -- ファイル「c:\temp\aaa.txt」を読み込みモードでオープン
 dbms_lob.fileopen( txt_file, dbms_lob.file_readonly);

 -- ファイルのデータを、項目「clob_data」に更新する。
 dbms_lob.loadfromfile( v_clob_data, txt_file, dbms_lob.getlength( txt_file ));

 -- ファイル「c:\temp\aaa.txt」をクローズ
 dbms_lob.fileclose( txt_file );

 commit;

end;

スポンサード リンク


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

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