首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

oracle读写资料

2012-07-27 
oracle读写文件Create Table Blob_EXAMPLE (ID number(6) primary key,Name varchar2(20),Resume Blob)ins

oracle读写文件

Create Table Blob_EXAMPLE (ID number(6) primary key,Name varchar2(20),Resume Blob)insert into blob_example values(1,'LONG1',empty_blob());insert into blob_example values(2,'LONG2',empty_blob());CREATE OR REPLACE DIRECTORY DOCS AS 'G:\Oracle\File'grant write,read on directory docs to long1CREATE OR REPLACE PROCEDURE update_blob_doc(t_id number, filename varchar2 ) assrc_file BFILE;dst_file BLOB;lgh_file BINARY_INTEGER;BEGINsrc_file:=BFILENAME('DOCS',filename);Select Resume INTO dst_file FROM blob_exampleWhere id=t_id FOR UPDATE;DBMS_LOB.fileopen(src_file,dbms_lob.file_readonly);lgh_file:=dbms_lob.getlength(src_file);dbms_lob.loadfromfile(dst_file,src_file,lgh_file);update blob_example set resume=dst_filewhere id=t_id;dbms_lob.fileclose(src_file);commit;end;CREATE OR REPLACE PROCEDURE Read_Blob_doc(t_id number,filename varchar2) asl_file UTL_FILE.FILE_TYPE;l_buffer RAW(32767);l_amount BINARY_INTEGER:=32767;l_pos NUMBER:=1;l_Blob Blob;l_Blob_len Number;BEGINSELECT resume Into l_Blob FROM Blob_exampleWHERE id=t_id;l_Blob_len:=dbms_lob.getlength(l_Blob);l_file:=UTL_FILE.FOPEN('DOCS',filename,'wb',32767);WHILE l_pos<l_Blob_len LOOPDBMS_LOB.READ(l_Blob,l_amount,l_pos,l_buffer);UTL_FILE.PUT_RAW(l_file,l_buffer,TRUE);l_pos:=l_pos+l_amount;END LOOP;UTL_FILE.FCLOSE(l_file);EXCEPTIONWHEN OTHERS THENIF UTL_FILE.IS_OPEN(l_file) THENUTL_FILE.FCLOSE(l_file);END IF;RAISE;END;

?

热点排行