17,377
社区成员
发帖
与我相关
我的任务
分享
SQL> DESC IMAGE_LOB
Name Type Nullable Default Comments
------- ----------- -------- ------- --------
T_ID VARCHAR2(5)
T_IMAGE BLOB
CREATE OR REPLACE PROCEDURE IMG_SAVE(TID VARCHAR2, FILENAME VARCHAR2) IS
l_file utl_file.file_type;
l_lob BLOB;
l_offset INT := 1;
l_amount INT := 1000;
l_len INT := 0;
l_buffer RAW(1000);
BEGIN
SELECT T_IMAGE INTO l_lob FROM IMAGE_LOB WHERE T_ID = TID;
--d:\temp是在utl_file_dir参数中设置的目录
l_file := utl_file.fopen('d:\temp', FILENAME, 'wb', 1000);
l_len := dbms_lob.getlength(l_lob);
WHILE l_offset <= l_len LOOP
dbms_lob.read(l_lob, l_amount, l_offset, l_buffer);
utl_file.put_raw(l_file, l_buffer, TRUE);
l_offset := l_offset + l_amount;
END LOOP;
utl_file.fclose(l_file);
END IMG_SAVE;
/
--自己先存入一张图片
--测试一下
EXEC IMG_SAVE('1','test2.gif');