All pastes #989494 Raw Edit

Someone

public text v1 · immutable
#989494 ·published 2008-04-19 12:36 UTC
rendered paste body
create or replace function search_in_table(
            owner varchar2,
            table_name varchar2,
            search_string varchar2)
            return varchar2 is
            stmt varchar2(32700);
            col varchar2(32700);
begin
            stmt := 'select ';
            for c in (
                        select column_name
                        from all_tab_columns
                        where all_tab_columns.table_name=search_in_table.table_name
                                    and all_tab_columns.owner=search_in_table.owner
                                    and data_type like '%CHAR%' )
            loop
                        stmt := stmt || 'max(case when "' || c.column_name ||'" REGEXP_LIKE(''' || c.column_name || ''',"' || search_string || '") then ''' || c.column_name|| ' ''' || ' else null end) || ';
            end loop;
            stmt:= stmt||'nvl2(count(*),null,null) from "'||owner||'"."'||table_name||'"';
	    execute immediate stmt into col;
            return col;
end;