blob是oracle中的乙個資料型別,儲存的是壓縮後的二進位制形式的大資料。
資料遷移如果涉及到blob欄位,都不好處理,因為無法用常規方法進行操作,如:使用select檢視該欄位,也無法用insert插入該字段的值。
以下記錄了blob欄位的匯出、匯入方法流程。
方法原理:利用utl_file將blob欄位的內容以二進位制的形式匯出到txt文件,然後用dbms_blob將文件內容匯入到指定的資料庫表中
1、建立乙個文字文件來儲存blob資料
這裡在home目錄下建立了乙個名為test.txt的檔案,即/home/dhl/test.txt
2、建立oracle臨時目錄
create3、匯出blob資料orreplace directory utl_file_dir as
'/home/dhl/
';
這裡以sy_qrtz_job_details這張資料表為例子,其中的job_data就是blob型別的字段
14、將文件內容匯入到指定的資料庫表中declare
2file_handle utl_file.file_type;
3b_lob blob;
4begin
5select job_data into b_lob from sy_qrtz_job_details where job_name=
'2wnfkfzz14yuodhnyofezbl';
67 file_handle := utl_file.fopen('
utl_file_dir
', '
test.txt
', 'w'
);
8utl_file.put_raw(file_handle , b_lob, true);
9utl_file.fclose(file_handle);
10end;
1declare
2b_file bfile;
3b_lob blob;
4begin5--
return a into b_lob將該列與乙個blog型別的變數繫結在一起,以後只要為b_lob賦值,即等於將該值插入了表中
6insert
7into
sy_qrtz_job_details8(
9sched_name,
10job_name,
11job_group,
12description,
13job_class_name,
14is_durable,
15is_nonconcurrent,
16is_update_data,
17requests_recovery,
18job_data19)
20values21(
22'rhscheduler',
23'test6',
24'default',
25'test6',
26'com.rh.core.icbc.imp.nimpstatejob',
27'1'
,28'0
',29'
0',30
'0',
31empty_blob()32)
33return
job_data
34into
b_lob;
35--
將檔案轉換為bfile
36 b_file := bfilename('
utl_file_dir
', '
test.txt');
37 dbms_lob.open
(b_file, dbms_lob.file_readonly);
38--
將b_file中的內容轉換到b_lob
39dbms_lob.loadfromfile(b_lob,b_file,dbms_lob.getlength(b_file));
40 dbms_lob.close
(b_file);
41commit;42
end;
KingbaseES 匯入匯出blob列資料
kingbasees相容了oracle的blob資料型別。通常是用來儲存二進位制形式的大資料,也可以用來儲存其他型別的資料。下面來驗證一下各種資料儲存在資料庫中形式。建表create table t1 id number,file blob 插入資料 insert into t1 values 1,...
oracle匯出,匯入
匯出,在dos下執行 1.exp username userpassword databasename 可以是資料庫也可是遠端的,如username userpassword caac135 2.enter array fetch buffer size 4096 回車 3.export file ...
oracle匯入匯出
sqlplus system system egov create directory dump dir as d dbback exit expdp system system egov directory dump dir dumpfile urbanyw.dmp schemas urbanyw...