Oracle全局搜索

Oracle指定用户下的全局搜索

可以根据自己需要进行修改

declare
 strSQL VARCHAR2(4000);
 strUser varchar2(100);
 strFind NVARCHAR2(500); 
 results number;
begin 
  --要搜索的用户
  strUser := 'UserName';
  --要搜索的值
  strFind := 'abcdefg';  
  dbms_output.put_line('开始全局搜索值为:'||strFind||'的字段......');
--指定用户下所有字段(去掉视图)
  for t in (select col.* from dba_tab_columns col inner join dba_tables tab on col.OWNER=tab.OWNER and col.TABLE_NAME=tab.TABLE_NAME 
    where tab.owner = upper(strUser) and DATA_TYPE !='BLOB' AND DATA_TYPE !='CLOB' and DATA_TYPE !='LONG') loop 
    results := 0;
    strSQL := 'select count(1) from '||t.table_name||' where trim('||t.column_name||')='||q'[trim(']'||strFind||q'[')]';
    execute immediate strSQL into results;    
    if (results>0) then
      dbms_output.put_line(strSQL||q'[;--]'||results);
    end if;
  end loop;
  dbms_output.put_line('搜索结束');
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值