Skip to content

Instantly share code, notes, and snippets.

@pshapoval
pshapoval / oracle_format_size
Created December 16, 2013 19:58
Oracle PL-SQL function to convert bytes into KB, MB and so on
create or replace function format_size(p_size IN NUMBER)
return VARCHAR2
IS
v_i number;
type array_t is varray(3) of varchar2(10);
v_array array_t := array_t(' Bytes', ' KB', ' MB');
BEGIN
v_i := floor(log(1024, p_size));
return to_char(round(p_size/power(1024, v_i), 2))||v_array(v_i+1);
END;
@pshapoval
pshapoval / oracle_create_mime
Last active December 26, 2015 16:49
Generate correct MIME header for FS file that allow browser download such file.
DECLARE
l_filename BFILE;
v_export_dir VARCHAR2(2000);
v_length integer;
l_blob blob;
des_offset number := 1;
src_offset number := 1;
x number;
BEGIN
system_run('/path/to/report/generation/script.sh -r '); /*Run report generator script*/
@pshapoval
pshapoval / oracle_system_run
Last active December 26, 2015 16:49
Oracle PL-SQL procedure for running OS script
CREATE DIRECTORY TMP AS '/tmp/';
create or replace
PROCEDURE system_run(cmd IN varchar2)
IS
script_file varchar2(40) := 'my-temp-script.sh';
script_data varchar2(4000);
MyFile utl_file.file_type;
d varchar2(4000);
dump_file varchar2(40) := 'my-temp-file.dat';