-- Data model to support content repository of the ArsDigita -- Publishing System -- Copyright (C) 1999-2000 ArsDigita Corporation -- Author: Karl Goldstein (karlg@arsdigita.com) -- $Id: content-util.sql,v 1.2 2007/09/17 12:58:30 maltes Exp $ -- This is free software distributed under the terms of the GNU Public -- License. Full text of the license is available from the GNU Project: -- http://www.fsf.org/copyleft/gpl.html create or replace function table_exists ( table_name varchar2 ) return boolean is v_count integer; v_exists boolean; begin select decode(count(*),0,0,1) into v_count from user_tables where table_name = upper(table_exists.table_name); if v_count = 1 then v_exists := true; else v_exists := false; end if; return v_exists; end table_exists; / show errors create or replace function column_exists ( table_name varchar2, column_name varchar2 ) return boolean is v_count integer; v_exists boolean; begin select decode(count(*),0,0,1) into v_count from user_tab_columns where table_name = upper(column_exists.table_name) and column_name = upper(column_exists.column_name); if v_count = 1 then v_exists := true; else v_exists := false; end if; return v_exists; end column_exists; / show errors create or replace procedure string_to_blob_size( s varchar2, blob_loc blob, blob_size number) as language java name 'com.arsdigita.content.Util.stringToBlob( java.lang.String, oracle.sql.BLOB, int )'; / show errors create or replace function blob_to_string (blob_loc IN BLOB) RETURN VARCHAR2 IS v_blength number; v_ret varchar(32767); v_amount binary_integer:=10000; v_offset integer:=1; v_buffer raw(20000); BEGIN v_blength:=dbms_lob.getlength(blob_loc); IF v_blength=0 THEN return v_ret; ELSE if v_blength