--------------------

-- 这里是查询 数字型字段值
/*declare
CURSOR cur_query IS
select table_name, column_name, data_type from user_tab_columns;
a number;
sql_hard varchar2(2000);
vv number;
begin
for rec1 in cur_query loop
a:=0;
if rec1.data_type ='NUMBER' THEN
a := 1;
end if;
if a>0 then
sql_hard := '';
sql_hard := 'SELECT count(*) FROM '|| rec1.table_name ||' where '
||rec1.column_name|| '=''TYRCE0BF26AB5C586B3 '' ';
dbms_output.put_line(sql_hard);
execute immediate sql_hard INTO vv;
IF vv > 0 THEN
dbms_output.put_line(rec1.table_name||'--'||rec1.column_name);
end if;
END IF;
end loop;
end;*/

查询字符串类型:

declare
CURSOR cur_query IS
select a.table_name, a.column_name, a.data_type from user_tab_columns a
where 1=1
and (lower(a.data_type) = 'varchar2' or lower(a.data_type) = 'char')
and NOT a.TABLE_NAME like '%$%'
and NOT a.TABLE_NAME like '%+%'
and NOT a.TABLE_NAME like '%=%'
ORDER BY A.TABLE_NAME ASC
;
a number;
sql_hard varchar2(2000);
vv number;
rscount number;
str varchar2(2000);
num number;
findValue varchar2(500) :='R2186E3DC09B88E1AF '; -- 要查询的字符串值
begin
rscount:=0; str:='TRUNCATE table tmp_test';
execute immediate str; str:='drop table tmp_test';
execute immediate str; str:='CREATE GLOBAL TEMPORARY TABLE tmp_test (tab_name varchar2(500), col_name varchar2(500)) ON COMMIT PRESERVE ROWS';
execute immediate str; ----使用动态SQL语句来执行 for rec1 in cur_query loop
rscount:= rscount + 1;
a:=0;
--if rec1.data_type ='VARCHAR2' or rec1.data_type='CHAR' THEN
if rec1.data_type ='VARCHAR2' or rec1.data_type='CHAR' THEN
a := 1;
end if;
if a>0 then
sql_hard := '';
sql_hard := 'SELECT count(*) FROM '|| rec1.table_name ||' where '
--||rec1.column_name|| ' =''wu''';
||rec1.column_name|| ' ='''|| findValue || '''';
--dbms_output.put_line(sql_hard);
--dbms_output.put_line( '**** ' || rec1.table_name||'--'||rec1.column_name);
execute immediate sql_hard INTO vv;
IF NVL(vv,0) > 0 THEN
dbms_output.put_line(rec1.table_name||'--'||rec1.column_name);
str:= 'insert into tmp_test '
|| ' select ''' || rec1.table_name || ''' as tab_name,''' || rec1.column_name || ''' as col_name from dual'; execute immediate str; str:= 'commit';
execute immediate str;
end if;
END IF;
end loop; --str:= 'select * from tmp_test';
--execute immediate str; end; -- 运行完以后 执行
/*
select * from tmp_test;
*/

Oracle 中 根据值 查询 所在 表和字段的更多相关文章

  1. Oracle中V$SESSION等各表的字段解释,Oracle官方解释

    一.常用的视图 1.会话相关视图 View Description V$PROCESS Contains information about the currently active processe ...

  2. 恢复oracle中误删除drop掉的表 闪回的方法

    恢复oracle中误删除drop掉的表   查看回收站中表 --需要在其所在用户下查询 回收站对象 select object_name,original_name,partition_name,ty ...

  3. 对于Oracle中分页排序查询语句执行效率的比较分析

    转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分 ...

  4. Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)

    应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create ...

  5. B表中的pid对应A表中id,查询A表中数据,根据b表中对应a表中该id的数据数目排序

    B表中的pid对应A表中id,查询A表中数据,根据b表中对应a表中该id的数据数目排序 select a.*,count(*) as c from a left join b on a.id=b.ai ...

  6. ORACLE中如何找出大表分布在哪些数据文件中?

    ORACLE中如何找出大表分布在哪些数据文件中?   在ORACLE数据中,我们能否找出一个大表的段对象分布在哪些数据文件中呢? 答案是可以,我们可以用下面脚本来找出对应表的区.段分别位于哪些数据文件 ...

  7. SQL查询每个表的字段数量

    --SQL查询每个表的字段数量select b.[name], count(*) As AllCount,ISNULL(ISNULL(sum(case when isnullable=0 then 1 ...

  8. Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)

    Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子   时间:2012-11-20 17:54:02   Java 通过JDBC查询数据库表结构(字段名称,类型,长 ...

  9. Oracle中的层次查询详解

    1 语法格式 select [level], column, expr... from table [where condition] start with condition connect by ...

随机推荐

  1. cf 605A Sorting Railway Cars 贪心 简单题

    其实就是求总长度 - 一个最长“连续”自序列的长度 最长“连续”自序列即一个最长的lis,并且这个lis的值刚好是连续的,比如4,5,6... 遍历一遍,贪心就是了 遍历到第i个时,此时值为a[i], ...

  2. sublime相关设置

    1.设置Sublime Text新标签页打开文件 "open_files_in_new_window": false,

  3. Timer与ScheduledThreadPoolExecutor的比较

    推荐还是用第二种方法,即用ScheduledThreadPoolExecutor,因为它不需要像timer那样需要在里面再用一个线程池来保证计时的准确.(前提是线程池必须要大于1个线程) 1.time ...

  4. Java拾穗

    1.Class.forName("com.wzh.test.loadClass"); Class.forName("com.mysql.jdbc.Driver" ...

  5. NIO与传统IO的区别

    传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大.使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数 ...

  6. Singleton 单例模板

    // singleton.h #ifndef SINGLETON_H #define SINGLETON_H // 单例基类模板 template <class T> class Sing ...

  7. POJ 1149 PIGS 【网络流】

    题意: m n   //有m个猪圈,n个人卖猪. a1...am    //编号为i的猪圈里有ai头猪. b1 c1...cb1 d1   //第i个人有bi把钥匙,分别是ci猪圈的,其它猪圈里的猪都 ...

  8. C++ primer 练习9.49

    如果一个字母延伸到中线之上,如d或f,则称其有上出头部分.如果一个字母延伸到中线之下,如p或g, 则称其有下出头部分.编写程序,读入一个单词,输出最长的即不包含上出头部分,也不包含下出头部分单 词. ...

  9. poj 2109 Power of Cryptography

    点击打开链接 Power of Cryptography Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16388   Ac ...

  10. nginx/Windows-1.9.0的日志分割

    @echo offrem @echo off rem 取1天之前的日期echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vb ...