|
|
|
|
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;
|
スポンサード リンク
|
|
|
|
|