Last active
March 14, 2024 16:30
-
-
Save jesusdomin/9a4edd526e8f57649bac to your computer and use it in GitHub Desktop.
Load CLOB from file and write CLOB to file sample
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
rem | |
rem 15/12/2014 - jdom | |
rem | |
rem ------------------------------------------------------------------ | |
rem OBJECTIUS: | |
rem | |
rem Ejemplo de como leer un fichero y cargar en clob, y de como | |
rem escribir un clog a fichero. | |
rem ------------------------------------------------------------------ | |
rem NOTES: | |
rem ------------------------------------------------------------------ | |
rem PARAMETRES: | |
rem ------------------------------------------------------------------ | |
rem MODIFICACIONS: | |
rem ------------------------------------------------------------------ | |
rem | |
set serveroutput on size 1000000 | |
declare | |
v_plantilla clob; | |
v_cos_eml clob; | |
v_ind_body number; | |
-- -------------------------------------------------------------------------- | |
procedure clob_from_file( | |
p_dir in varchar2, | |
p_file in varchar2, | |
p_clob in out clob | |
) is | |
v_bfile bfile := null; | |
v_lang_context number := dbms_lob.default_lang_ctx; | |
v_dest_offset integer := 1; | |
v_src_offset integer := 1; | |
v_warning number; | |
begin | |
v_bfile := BFileName(p_dir, p_file); | |
dbms_lob.open(v_bfile, dbms_lob.lob_readonly); | |
dbms_lob.loadClobFromFile( | |
p_clob, | |
v_bfile, | |
dbms_lob.lobmaxsize, | |
v_dest_offset, | |
v_src_offset, | |
dbms_lob.default_csid, | |
v_lang_context, | |
v_warning | |
); | |
dbms_lob.close(v_bfile); | |
end clob_from_file; | |
-- -------------------------------------------------------------------------- | |
procedure clob_to_file( | |
p_dir in varchar2, | |
p_file in varchar2, | |
p_clob in clob | |
) is | |
v_output utl_file.file_type; | |
v_amt number default 32000; | |
v_offset number default 1; | |
v_length number default nvl(dbms_lob.getlength(p_clob), 0); | |
begin | |
v_output := utl_file.fopen(p_dir, p_file, 'w', 32760); | |
while ( v_offset < v_length ) | |
loop | |
utl_file.put(v_output, dbms_lob.substr(p_clob, v_amt, v_offset)); | |
utl_file.fflush(v_output); | |
v_offset := v_offset + v_amt; | |
end loop; | |
utl_file.new_line(v_output); | |
utl_file.fclose(v_output); | |
end clob_to_file; | |
-- -------------------------------------------------------------------------- | |
begin | |
dbms_lob.createTemporary(v_plantilla, true); | |
clob_from_file('UTIL_BDD', 'file-name.html', v_plantilla); | |
-- TODO .... | |
clob_to_file('UTIL_BDD', 'new-file-name.html', v_plantilla); | |
dbms_lob.freeTemporary(v_plantilla); | |
end; | |
/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment