In PL/SQL you can use this procedure to save image in directory:
CREATE OR REPLACE PROCEDURE SaveFile(
FileContent IN OUT NOCOPY BLOB
, FolderName IN VARCHAR2
, FileName IN VARCHAR2)
IS
BUFFER RAW(1024);
OFFSET PLS_INTEGER := 1;
FileLength PLS_INTEGER;
amount PLS_INTEGER := 1024;
fhandle UTL_FILE.FILE_TYPE;
BEGIN
FileLength := DBMS_LOB.GETLENGTH(FileContent);
fhandle := UTL_FILE.FOPEN(FolderName, FileName, 'wb');
LOOP
EXIT WHEN OFFSET > FileLength;
DBMS_LOB.READ(FileContent, amount, OFFSET, BUFFER);
UTL_FILE.PUT_RAW(fhandle, BUFFER, TRUE);
OFFSET := OFFSET + amount;
END LOOP;
UTL_FILE.FCLOSE (fhandle);
EXCEPTION
WHEN OTHERS THEN
IF UTL_FILE.IS_OPEN(fhandle) THEN
UTL_FILE.FCLOSE(fhandle);
END IF;
RAISE;
END SaveFile;
No comments:
Post a Comment