国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle進階 LOB字段學習

2024-08-29 13:36:10
字體:
來源:轉載
供稿:網友
--插入bfilecreate or replace PRocedure insert_book(filename varchar2) as
 book_file  bfile := NULL;
 bookExists boolean := false;
begin
 book_file  := bfilename('BOOK_TEXT', filename);
 bookExists  := dbms_lob.fileexists(book_file) = 1;
 
 if bookExists then
  insert into my_book_files values ((select count(*) from my_book_files) + 1 , book_file);
  dbms_output.put_line('Insert sUCess! file : ' filename);
 else
  dbms_output.put_line('Not exists! file : ' filename);
   end if;
exception
  when dbms_lob.noexist_Directory then
       dbms_output.put_line('Error: ' sqlerrm); 
  when dbms_lob.invalid_directory then
       dbms_output.put_line('Error : ' sqlerrm);
  when others then
       dbms_output.put_line('Unkown Error : ' sqlerrm);      
end insert_book;
/
 create or replace procedure insertPDF(fileName varchar2) is
        fileLoc bfile;
        nID number;
        nPDFSize integer;
        bFileExists boolean := false;
begin
     fileLoc := bfilename('PDFDIR',filename);
     bFileExists := dbms_lob.fileexists(fileLoc) = 1;
     if bFileExists = false then
        dbms_output.put_line(fileName ' not exists');
        return;
     end if;
    
     nPDFSize := dbms_lob.getlength(fileLoc);
     dbms_output.put_line('the length of ' fileName ' is ' nPDFSize);
     select count(*) + 1 into nID from PDFTable;
     insert into PDFTable(ID,Pdffile)
            values (nID, fileLoc);
exception
  when dbms_lob.noexist_directory then
       dbms_output.put_line('Error: ' sqlerrm); 
  when dbms_lob.invalid_directory then
       dbms_output.put_line('Error : ' sqlerrm);
  when others then
       dbms_output.put_line('Unkown Error : ' sqlerrm);
end;      
/
 --插入 blobCREATE OR REPLACE procedure insertImg(imgName varchar2) is
        v_file_loc bfile;
        v_image blob;
        nID number;
        nImgSize integer;
 bFileExists boolean := false;
begin
      v_file_loc := bfilename('IMAGEDIR', imgName);
      bFileExists := dbms_lob.fileExists(v_file_loc) = 1;
      if bFileExists = false then
       dbms_output.put_line(imgName ' not exists');
       return;
      end if;      nImgSize := dbms_lob.getlength(v_file_loc);
      dbms_output.put_line(imgName ' size is ' nImgSize);
      dbms_output.put_line('Now Inserting empty image row');      select count(*) + 1 into nID from imagetable;
      insert into imagetable(ID, image)
             values (nID, empty_blob)
             returning image into v_image;      DBMS_LOB.FILEOPEN (v_file_loc);
      dbms_output.put_line('Open file');
      dbms_lob.loadfromfile(v_image, v_file_loc, nImgSize);
      DBMS_LOB.FILECLOSE(v_file_loc);
      commit;
exception
          when others then
               dbms_output.put_line('Error happen! ' sqlerrm);
        DBMS_LOB.FILECLOSE(v_file_loc);
end insertImg;
/
--=================================================SQL> create table view_sites_info (
  2   site_id  number(3),
  3   audio  blob default empty_blob(),
  4   document clob default empty_clob(),
  5   video_file  bfile default null
  6  );表已創建。SQL> commit;提交完成。
SQL> @e:/writelobPL/SQL 過程已成功完成。SQL> desc view_sites_info;
 名稱                                      是否為空? 類型
 ----------------------------------------- -------- ----------------------------
 SITE_ID                                            NUMBER(3)
 AUDIO                                              BLOB
 DOCUMENT                                           CLOB
 VIDEO_FILE                                         BINARY FILE LOB
SQL> select document from view_sites_info where site_id = 100;DOCUMENT                                                                       
--------------------------------------------------------------------------------
This is a writing example                                                      
SQL> desc view_sites_info
 名稱                                      是否為空? 類型
 ----------------------------------------- -------- ----------------------------
 SITE_ID                                            NUMBER(3)
 AUDIO                                              BLOB
 DOCUMENT                                           CLOB
 VIDEO_FILE                                         BINARY FILE LOBSQL> insert into bloBTest values (1, bfilename('tempdir', 'C:/Documents and Settings/Administrator/My Documents/My Pictures/tu1.jpg'));
insert into blobtest values (1, bfilename('tempdir', 'C:/Documents and Settings/Administrator/My Documents/My Pictures/tu1.jpg'))
                                *
ERROR 位于第 1 行:
ORA-00932: 數據類型不一致

SQL> desc BFILETEST
 名稱                                      是否為空? 類型
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(3)
 FNAME                                              BINARY FILE LOBSQL> insert into BFILETEST values (1, bfilename('tempdir', 'C:/Documents and Settings/Administrator/My Documents/My Pictures/tu1.jpg'));已創建 1 行。
SQL> get E:/insertimg
  1  create or replace procedure img_insert (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  8   F_LOB := bfilename('images', filename);
  9   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 10   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 11   dbms_lob.fileclose(F_LOB);
 12   commit;
 13* end;
SQL> r
  1  create or replace procedure img_insert (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  8   F_LOB := bfilename('images', filename);
  9   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 10   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 11   dbms_lob.fileclose(F_LOB);
 12   commit;
 13* end;   SQL> create table IMAGE_LOB  (T_ID  varchar2(5) not null, T_IMAGE blob not null );
表已創建。SQL> commit; 提交完成。SQL> get E:/insertimg
  1  create or replace procedure img_insert (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  8   F_LOB := bfilename('images', filename);
  9   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 10   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 11   dbms_lob.fileclose(F_LOB);
 12   commit;
 13* end;
SQL> r
  1  create or replace procedure img_insert (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  8   F_LOB := bfilename('images', filename);
  9   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 10   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 11   dbms_lob.fileclose(F_LOB);
 12   commit;
 13* end;過程已創建。SQL> commit;提交完成。
SQL> commit;提交完成。SQL> $clsSQL> @e:/insertimg過程已創建。SQL> commit;提交完成。SQL>  exec img_insert('1', 'e:/tu1.jpg');PL/SQL 過程已成功完成。SQL> @e:/insertimg過程已創建。SQL> exec img_insert('2', 'e:/tu2.jpg');PL/SQL 過程已成功完成。SQL> select count(*) from image_lob;  COUNT(*)                                                                     
----------                                                                     
         3                                                                     
SQL> @e:/insertimg過程已創建。
PL/SQL 過程已成功完成。SQL> @e:/insertimg過程已創建。PL/SQL 過程已成功完成。SQL> @e:/insertimg過程已創建。
PL/SQL 過程已成功完成。SQL> @e:/insertimg過程已創建。 PL/SQL 過程已成功完成。SQL> get e:/insertimg
  1  create or replace procedure "img_insert" (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   dbms_output.put_line('Now begin');
  8   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  9   F_LOB := bfilename('IMAGES', filename);
 10   dbms_output.put_line('Open success');
 11   dbms_output.put_line('Now open :' filename);
 12   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 13   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 14   dbms_lob.fileclose(F_LOB);
 15   commit;
 16  EXCEPTION
 17   when others
 18   then
 19     DBMS_OUTPUT.PUT_LINE('OTHERS Exception ' sqlerrm );
 20* end;
 21  /過程已創建。SQL> r
  1  create or replace procedure "img_insert" (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   dbms_output.put_line('Now begin');
  8   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  9   F_LOB := bfilename('IMAGES', filename);
 10   dbms_output.put_line('Open success');
 11   dbms_output.put_line('Now open :' filename);
 12   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 13   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 14   dbms_lob.fileclose(F_LOB);
 15   commit;
 16  EXCEPTION
 17   when others
 18   then
 19     DBMS_OUTPUT.PUT_LINE('OTHERS Exception ' sqlerrm );
 20* end; 
SQL> select table_name from user_tables;
TABLE_NAME                                                                     
------------------------------                                                 
ANYDATATAB                                                                     
BFILETEST                                                                      
BLOBTEST                                                                       
BONUS                                                                          
DEPT                                                                           
EMP                                                                            
IMAGE_LOB                                                                      
LINEITEM_CV                                                                    
LINEITEM_DP                                                                    
SALGRADE                                                                       
TAB2                                                                           
TABLE_NAME                                                                     
------------------------------                                                 
TEST                                                                           
TEST2                                                                          
VIEW_SITES_INFO                                                                 已選擇14行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 厦门市| 云阳县| 吕梁市| 西青区| 景宁| 福贡县| 缙云县| 堆龙德庆县| 龙门县| 东安县| 南郑县| 西和县| 乐都县| 马边| 延庆县| 同德县| 会昌县| 麻城市| 公主岭市| 东乌珠穆沁旗| 修武县| 鲜城| 平乐县| 宁远县| 岳西县| 东丽区| 成武县| 望谟县| 台东市| 东台市| 嘉鱼县| 永嘉县| 宁波市| 石家庄市| 冀州市| 永顺县| 介休市| 万安县| 郯城县| 施甸县| 彭水|