更新时间:2023-01-12 09:48:26
您可以使用UTL_FILE实用程序进行文件操作。
遍历包含blob字段的表,并根据需要使用UTL_FILE实用程序创建文件。 />
http:// docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_file.htm#BABDEJDH [ ^ ]
你能否告诉我如何使用我的工作utl_file
谢谢你我管理过要做到最后
这是我的程序,如果有更好的方式,请建议
CREATE 或 REPLACE PROCEDURE SAVE_FINGERS(
p_directory IN VARCHAR2
)
IS
v_blob BLOB;
v_start NUMBER:= 1 ;
v_bytelen NUMBER:= 2000 ;
v_len NUMBER;
v_raw RAW( 2000 );
v_x NUMBER;
v_output UTL_FILE.file_type;
v_file_name VARCHAR2( 200 );
BEGIN
FOR i IN ( SELECT DBMS_LOB.getlength(FINGERPRINT)v_len,CARD_NUMBER v_file_name,
FINGERPRINT v_blob
FROM RECEPT_CARDS)
LOOP
v_output:= UTL_FILE.fopen(p_directory,i.v_file_name || ' 。JPG',' wb', 32760 );
v_x:= i.v_len;
v_start:= 1 ;
v_bytelen:= 2000 ;
WHILE v_start< i.v_len AND v_bytelen> 0
LOOP
DBMS_LOB。 READ (i.v_blob,v_bytelen,v_start, v_raw);
UTL_FILE.put_raw(v_output,v_raw);
UTL_FILE.fflush(v_output);
v_start:= v_start + v_bytelen;
v_x:= v_x - v_bytelen;
IF v_x< 2000
那么
v_bytelen:= v_x;
END IF ;
END LOOP;
UTL_FILE.fclose(v_output);
END LOOP;
END SAVE_FINGERS;
I Have an oracle database with a table have a blob field have images store in it
how I can export these images stored in blob field back to a file in a folder on the computers harddisk
I have oracle 11g and pl/sql developr 8.0 and visual basic 2013
You could use UTL_FILE utility for file operation.
Loop through the table containing the blob field and create file as you wish using the UTL_FILE utility.
http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_file.htm#BABDEJDH[^]
could you please give me practical example how I can do my job using utl_file
THANK YOU I'VE MANAGED TO DO IT AT LAST
HERE IS MY PROCEDURE PLEASE ADVISE IF THERE IS A BETTER WAYCREATE OR REPLACE PROCEDURE SAVE_FINGERS ( p_directory IN VARCHAR2 ) IS v_blob BLOB; v_start NUMBER := 1; v_bytelen NUMBER := 2000; v_len NUMBER; v_raw RAW (2000); v_x NUMBER; v_output UTL_FILE.file_type; v_file_name VARCHAR2 (200); BEGIN FOR i IN (SELECT DBMS_LOB.getlength (FINGERPRINT) v_len, CARD_NUMBER v_file_name, FINGERPRINT v_blob FROM RECEPT_CARDS) LOOP v_output := UTL_FILE.fopen (p_directory, i.v_file_name || '.JPG', 'wb', 32760); v_x := i.v_len; v_start := 1; v_bytelen := 2000; WHILE v_start < i.v_len AND v_bytelen > 0 LOOP DBMS_LOB.READ (i.v_blob, v_bytelen, v_start, v_raw); UTL_FILE.put_raw (v_output, v_raw); UTL_FILE.fflush (v_output); v_start := v_start + v_bytelen; v_x := v_x - v_bytelen; IF v_x < 2000 THEN v_bytelen := v_x; END IF; END LOOP; UTL_FILE.fclose (v_output); END LOOP; END SAVE_FINGERS;