CREATE OR REPLACE PROCEDURE clob_to_file
( p_directory IN VARCHAR2,
p_filename IN VARCHAR2,
p_clob IN CLOB ) IS
c_chunk CONSTANT PLS_INTEGER := 32767;
l_fHandler UTL_FILE.FILE_TYPE;
l_pos PLS_INTEGER := 1;
BEGIN
l_fHandler := UTL_FILE.FOPEN(p_directory, p_filename, 'W', c_chunk);
WHILE l_pos < DBMS_LOB.GETLENGTH(p_clob) LOOP
UTL_FILE.PUT(l_fHandler, DBMS_LOB.SUBSTR(p_clob, c_chunk, l_pos));
l_pos := l_pos + c_chunk;
UTL_FILE.FFLUSH(l_fHandler);
END LOOP;
UTL_FILE.FCLOSE(l_fHandler);
END;
/
Dikkat edilmesi gereken konular ise p_directory olarak belirttiğimiz varchar2 değişkeni veritabanında yarattığımız bir klasör adına denk gelmelidir. "p_clob"'da clob tipinde bir değişkendir. Örnek olarak klasör böyle yaratılabilinir.
create or replace directory temp_dir as '/home/users/oracle';
Hiç yorum yok:
Yorum Gönder