193 lines
3.9 KiB
Plaintext
Executable File
193 lines
3.9 KiB
Plaintext
Executable File
create or replace package body sql_util_pkg
|
|
as
|
|
|
|
/*
|
|
|
|
Purpose: Package contains various SQL utilities
|
|
|
|
Remarks:
|
|
|
|
Who Date Description
|
|
------ ---------- -------------------------------------
|
|
MBR 01.01.2008 Created
|
|
|
|
*/
|
|
|
|
|
|
function make_rows (p_number_of_rows in number) return t_num_array pipelined
|
|
as
|
|
begin
|
|
|
|
/*
|
|
|
|
Purpose: make specified number of rows
|
|
|
|
Remarks:
|
|
|
|
Who Date Description
|
|
------ ---------- -------------------------------------
|
|
MBR 01.01.2008 Created
|
|
|
|
*/
|
|
|
|
|
|
for i in 1 .. p_number_of_rows loop
|
|
pipe row (i);
|
|
end loop;
|
|
|
|
return;
|
|
|
|
end make_rows;
|
|
|
|
|
|
function make_rows (p_start_with in number,
|
|
p_end_with in number) return t_num_array pipelined
|
|
as
|
|
begin
|
|
|
|
/*
|
|
|
|
Purpose: make rows in specified range
|
|
|
|
Remarks:
|
|
|
|
Who Date Description
|
|
------ ---------- -------------------------------------
|
|
MBR 01.01.2008 Created
|
|
|
|
*/
|
|
|
|
for i in p_start_with .. p_end_with loop
|
|
pipe row (i);
|
|
end loop;
|
|
|
|
return;
|
|
|
|
end make_rows;
|
|
|
|
|
|
--function clob_to_blob (p_clob in clob) return blob
|
|
--as
|
|
-- l_pos pls_integer := 1;
|
|
-- l_buffer raw(32767);
|
|
-- l_lob_len pls_integer := dbms_lob.getlength(p_clob);
|
|
-- l_returnvalue blob;
|
|
--begin
|
|
|
|
-- /*
|
|
|
|
-- Purpose: convert clob to blob
|
|
|
|
-- Remarks: see http://forums.oracle.com/forums/thread.jspa?threadID=491821
|
|
|
|
-- Who Date Description
|
|
-- ------ ---------- -------------------------------------
|
|
-- MBR 01.01.2008 Created
|
|
--
|
|
-- */
|
|
|
|
-- dbms_lob.createtemporary(l_returnvalue, false);
|
|
-- dbms_lob.open(l_returnvalue, dbms_lob.lob_readwrite);
|
|
|
|
-- loop
|
|
|
|
-- l_buffer := utl_raw.cast_to_raw (dbms_lob.substr(p_clob, 16000, l_pos));
|
|
|
|
-- if utl_raw.length (l_buffer) > 0 then
|
|
-- dbms_lob.writeappend(l_returnvalue, utl_raw.length(l_buffer), l_buffer);
|
|
-- end if;
|
|
|
|
-- l_pos := l_pos + 16000;
|
|
-- exit when l_pos > l_lob_len;
|
|
--
|
|
-- end loop;
|
|
|
|
-- return l_returnvalue;
|
|
|
|
--end clob_to_blob;
|
|
|
|
|
|
function clob_to_blob (p_clob in clob) return blob
|
|
as
|
|
l_returnvalue blob;
|
|
l_dest_offset integer := 1;
|
|
l_source_offset integer := 1;
|
|
l_lang_context integer := dbms_lob.default_lang_ctx;
|
|
l_warning integer := dbms_lob.warn_inconvertible_char;
|
|
BEGIN
|
|
|
|
/*
|
|
|
|
Purpose: convert clob to blob
|
|
|
|
Remarks: see http://www.dbforums.com/oracle/1624851-clob-blob.html
|
|
|
|
Who Date Description
|
|
------ ---------- -------------------------------------
|
|
MBR 25.01.2011 Created
|
|
|
|
*/
|
|
|
|
dbms_lob.createtemporary (l_returnvalue, true);
|
|
|
|
dbms_lob.converttoblob
|
|
(
|
|
dest_lob => l_returnvalue,
|
|
src_clob => p_clob,
|
|
amount => dbms_lob.getlength(p_clob),
|
|
dest_offset => l_dest_offset,
|
|
src_offset => l_source_offset,
|
|
blob_csid => dbms_lob.default_csid,
|
|
lang_context=> l_lang_context,
|
|
warning => l_warning
|
|
);
|
|
|
|
return l_returnvalue;
|
|
|
|
end clob_to_blob;
|
|
|
|
|
|
function blob_to_clob (p_blob in blob) return clob
|
|
as
|
|
l_returnvalue clob;
|
|
l_dest_offset integer := 1;
|
|
l_source_offset integer := 1;
|
|
l_lang_context integer := dbms_lob.default_lang_ctx;
|
|
l_warning integer := dbms_lob.warn_inconvertible_char;
|
|
BEGIN
|
|
|
|
/*
|
|
|
|
Purpose: convert blob to clob
|
|
|
|
Remarks:
|
|
|
|
Who Date Description
|
|
------ ---------- -------------------------------------
|
|
MBR 25.01.2011 Created
|
|
|
|
*/
|
|
|
|
dbms_lob.createtemporary (l_returnvalue, true);
|
|
|
|
dbms_lob.converttoclob
|
|
(
|
|
dest_lob => l_returnvalue,
|
|
src_blob => p_blob,
|
|
amount => dbms_lob.lobmaxsize,
|
|
dest_offset => l_dest_offset,
|
|
src_offset => l_source_offset,
|
|
blob_csid => dbms_lob.default_csid,
|
|
lang_context=> l_lang_context,
|
|
warning => l_warning
|
|
);
|
|
|
|
return l_returnvalue;
|
|
|
|
end blob_to_clob;
|
|
|
|
|
|
end sql_util_pkg;
|
|
/
|
|
|