Oracle 中 根据值 查询 所在 表和字段
-------------------- -- 这里是查询 数字型字段值
/*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 中 根据值 查询 所在 表和字段的更多相关文章
- Oracle中V$SESSION等各表的字段解释,Oracle官方解释
一.常用的视图 1.会话相关视图 View Description V$PROCESS Contains information about the currently active processe ...
- 恢复oracle中误删除drop掉的表 闪回的方法
恢复oracle中误删除drop掉的表 查看回收站中表 --需要在其所在用户下查询 回收站对象 select object_name,original_name,partition_name,ty ...
- 对于Oracle中分页排序查询语句执行效率的比较分析
转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分 ...
- Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)
应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create ...
- 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 ...
- ORACLE中如何找出大表分布在哪些数据文件中?
ORACLE中如何找出大表分布在哪些数据文件中? 在ORACLE数据中,我们能否找出一个大表的段对象分布在哪些数据文件中呢? 答案是可以,我们可以用下面脚本来找出对应表的区.段分别位于哪些数据文件 ...
- SQL查询每个表的字段数量
--SQL查询每个表的字段数量select b.[name], count(*) As AllCount,ISNULL(ISNULL(sum(case when isnullable=0 then 1 ...
- Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)
Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子 时间:2012-11-20 17:54:02 Java 通过JDBC查询数据库表结构(字段名称,类型,长 ...
- Oracle中的层次查询详解
1 语法格式 select [level], column, expr... from table [where condition] start with condition connect by ...
随机推荐
- cf 605A Sorting Railway Cars 贪心 简单题
其实就是求总长度 - 一个最长“连续”自序列的长度 最长“连续”自序列即一个最长的lis,并且这个lis的值刚好是连续的,比如4,5,6... 遍历一遍,贪心就是了 遍历到第i个时,此时值为a[i], ...
- sublime相关设置
1.设置Sublime Text新标签页打开文件 "open_files_in_new_window": false,
- Timer与ScheduledThreadPoolExecutor的比较
推荐还是用第二种方法,即用ScheduledThreadPoolExecutor,因为它不需要像timer那样需要在里面再用一个线程池来保证计时的准确.(前提是线程池必须要大于1个线程) 1.time ...
- Java拾穗
1.Class.forName("com.wzh.test.loadClass"); Class.forName("com.mysql.jdbc.Driver" ...
- NIO与传统IO的区别
传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大.使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数 ...
- Singleton 单例模板
// singleton.h #ifndef SINGLETON_H #define SINGLETON_H // 单例基类模板 template <class T> class Sing ...
- POJ 1149 PIGS 【网络流】
题意: m n //有m个猪圈,n个人卖猪. a1...am //编号为i的猪圈里有ai头猪. b1 c1...cb1 d1 //第i个人有bi把钥匙,分别是ci猪圈的,其它猪圈里的猪都 ...
- C++ primer 练习9.49
如果一个字母延伸到中线之上,如d或f,则称其有上出头部分.如果一个字母延伸到中线之下,如p或g, 则称其有下出头部分.编写程序,读入一个单词,输出最长的即不包含上出头部分,也不包含下出头部分单 词. ...
- poj 2109 Power of Cryptography
点击打开链接 Power of Cryptography Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16388 Ac ...
- nginx/Windows-1.9.0的日志分割
@echo offrem @echo off rem 取1天之前的日期echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vb ...