久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    【SQL】Oracle BLOB 批量導入導出圖片到文件夾相關語句

     xfxyxh 2024-04-21 發(fā)布于浙江

    本文主要介紹 Oracle下 批量導入導出圖片的方法,存儲過程

    Oracle LOB 類型介紹

    BLOB的含義

    BLOB (binary large object),二進制大對象,是一個可以存儲二進制文件的容器。 主要圖片、聲音文件等,保存位圖

    CLOB的含義

    CLOB(Character Large Object),它與LONG數(shù)據(jù)類型類似,只不過CLOB用于存儲數(shù)據(jù)庫中的大型單字節(jié)字符數(shù)據(jù)塊,不支持寬度不等的字符集。可存儲的最大大小為4G字節(jié)

    .CLOB使用CHAR來保存數(shù)據(jù)。 如:保存XML文檔。

    批量導入導出

    批量導入
    1. --創(chuàng)建表,及目錄
    2. create table image_lob(t_id varchar2(10) not null,name varchar2(30),t_image blob not null);
    3. create or replace directory "images_dump" as '/home/oracle/images_dump/';
    4. --創(chuàng)建存儲過程
    5. create or replace procedure img_insert(tid varchar2,vname varchar2,filename varchar2) as
    6. f_lob bfile;
    7. b_lob blob;
    8. begin
    9. insert into image_lob(t_id,name,t_image) values(tid,vname,empty_blob()) return t_image into b_lob;
    10. f_lob:=bfilename('images_dump',filename);
    11. dbms_lob.fileopen(f_lob,dbms_lob.file_readonly);
    12. dbms_lob.loadfromfile(b_lob,f_lob,dbms_lob.getlength(f_lob));
    13. dbms_lob.fileclose(f_lob);
    14. commit;
    15. end;
    16. /
    17. --執(zhí)行導入
    18. exec img_insert(89898989,'firsouler','dbwn.png');
    19. exec img_insert(16211779,'abc','adr.png');
    批量導出
    1. --創(chuàng)建導出目錄,注意權限
    2. create or replace directory BLOBDIR as '/home/oracle/images_exp';
    3. grant read,write on directory BLOBDIR to mytest;
    4. --創(chuàng)建過程,本例使用t_id,name列作為照片名字,根據(jù)t_id 排序獲取rownum
    5. CREATE OR REPLACE PROCEDURE GET_PIC_BLOB(i_xh VARCHAR2) IS
    6. l_file UTL_FILE.FILE_TYPE;
    7. l_buffer RAW(32767);
    8. l_amount BINARY_INTEGER := 32767;
    9. l_pos INTEGER := 1;
    10. l_name VARCHAR2(30);
    11. l_id VARCHAR2(30);
    12. l_blob BLOB;
    13. l_blob_len INTEGER;
    14. BEGIN
    15. with tmp_image as (select rownum as rn,t_id,name,t_image from image_lob order by t_id)
    16. select t_id,name,t_image into l_id,l_name,l_blob from tmp_image where rn = i_xh;
    17. l_blob_len := DBMS_LOB.GETLENGTH(l_blob);
    18. l_file := UTL_FILE.FOPEN('BLOBDIR', l_id || '_' || l_name || '.jpg', 'WB', 32767);
    19. WHILE l_pos < l_blob_len LOOP
    20. DBMS_LOB.READ(l_blob, l_amount, l_pos, l_buffer);
    21. UTL_FILE.PUT_RAW(l_file, l_buffer, TRUE);
    22. l_pos := l_pos + l_amount;
    23. END LOOP;
    24. UTL_FILE.FCLOSE(l_file);
    25. EXCEPTION
    26. WHEN OTHERS THEN
    27. dbms_output.put_line(SQLERRM);
    28. IF UTL_FILE.IS_OPEN(l_file) THEN
    29. UTL_FILE.FCLOSE(l_file);
    30. END IF;
    31. RAISE;
    32. END GET_PIC_BLOB;
    33. /
    34. --循環(huán)導出200個圖片,以列t_id排序獲取rownum
    35. declare
    36. cursor cur is
    37. with t as (select rownum as rn from image_lob order by t_id) select rn from t where rownum <= 200; --導出前200張
    38. begin
    39. for rec in cur loop
    40. GET_PIC_BLOB(rec.rn);
    41. end loop;
    42. end;
    43. /

      本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 国产精品一亚洲AV日韩AV欧| 边做饭边被躁欧美三级 | 桃子视频在线播放WWW| 97精品亚成在人线免视频| 成人3D动漫一区二区三区 | 成人免费乱码大片a毛片| 中文字幕精品无码一区二区三区| 蜜臀AV在线播放一区二区三区| 丝袜美腿一区二区三区| 午夜亚洲乱码伦小说区69堂| 国精偷拍一区二区三区| 日本一区二区三区专线| 亚洲色大成网站WWW永久麻豆| 国产免费1卡2卡| 免费久久人人爽人人爽AV| 亚洲一区在线成人av| 真实国产熟睡乱子伦视频| 国产福利深夜在线观看| 福利免费观看体检区| 免费无码又爽又刺激软件下载| 秋霞人妻无码中文字幕| 免费又大粗又爽又黄少妇毛片| 伊人久久精品无码麻豆一区| 免费人成在线观看| 好男人社区影视在线WWW| 国产一精品一AV一免费爽爽| 99国精品午夜福利视频不卡99 | 少妇人妻真实偷人精品| 免费观看欧美猛交视频黑人| 婷婷六月综合缴情在线| 精品无码国产自产在线观看水浒传 | 亚洲精品国产精品国自产观看| 午夜毛片不卡免费观看视频| 精品一区二区三区在线播放视频| 国产精品人妻中文字幕| 亚洲国产AV无码精品无广告| 亚洲男女内射在线播放| 蜜芽久久人人超碰爱香蕉| 好深好湿好硬顶到了好爽| 又大又爽又硬的曰皮视频| 国产精品免费视频不卡|