日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle--导出、导入blob类型的字段

發布時間:2023/11/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle--导出、导入blob类型的字段 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

oracle--導出、導入blob類型的字段

blob是oracle中的一個數據類型,保存的是壓縮后的二進制形式的大數據。

數據遷移如果涉及到blob字段,都不好處理,因為無法用常規方法進行操作,如:使用select查看該字段,也無法用insert插入該字段的值。

?

以下記錄了blob字段的導出、導入方法流程。

方法原理:利用UTL_FILE將blob字段的內容以二進制的形式導出到txt文檔,然后用dbms_blob將文檔內容導入到指定的數據庫表中

?

1、創建一個文本文檔來保存blob數據

這里在home目錄下創建了一個名為test.txt的文件,即/home/dhl/test.txt

2、創建oracle臨時目錄

create or replace directory UTL_FILE_DIR as '/home/dhl/';

3、導出blob數據

這里以SY_QRTZ_JOB_DETAILS這張數據表為例子,其中的JOB_DATA就是blob類型的字段

1 DECLARE2 file_handle UTL_FILE.FILE_TYPE;3 b_lob BLOB;4 BEGIN5 select JOB_DATA into b_lob from SY_QRTZ_JOB_DETAILS where JOB_NAME='2WNfkfZZ14YUodhnYOfEzbl';6 7 file_handle := utl_file.fopen('UTL_FILE_DIR', 'test.txt', 'W'); 8 utl_file.PUT_RAW(file_handle , b_lob, true); 9 UTL_FILE.FCLOSE(file_handle); 10 END;

?

4、將文檔內容導入到指定的數據庫表中

1 DECLARE2 b_file bfile;3 b_lob BLOB;4 BEGIN5 --return a into b_lob將該列與一個blog類型的變量綁定在一起,以后只要為b_lob賦值,即等于將該值插入了表中6 INSERT7 INTO SY_QRTZ_JOB_DETAILS8 (9 SCHED_NAME, 10 JOB_NAME, 11 JOB_GROUP, 12 DESCRIPTION, 13 JOB_CLASS_NAME, 14 IS_DURABLE, 15 IS_NONCONCURRENT, 16 IS_UPDATE_DATA, 17 REQUESTS_RECOVERY, 18 JOB_DATA 19 ) 20 VALUES 21 ( 22 'RhScheduler', 23 'test6', 24 'DEFAULT', 25 'test6', 26 'com.rh.core.icbc.imp.NImpStateJob', 27 '1', 28 '0', 29 '0', 30 '0', 31 empty_blob() 32 ) 33 RETURN JOB_DATA 34 INTO 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 39 dbms_lob.loadfromfile(b_lob,b_file,dbms_lob.getlength(b_file)); 40 dbms_lob.close(b_file); 41 COMMIT; 42 END;

總結

以上是生活随笔為你收集整理的oracle--导出、导入blob类型的字段的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。