Oracle数据库中,知道一个值,如何查询它所在的表,是哪个字段? 5

举个例子,我知道有个值是:1009A11000000000QP7R,我要查出在哪些表,哪些字段下面有这个值。最好能详细点,谢谢... 举个例子,我知道有个值是:1009A11000000000QP7R, 我要查出在哪些表,哪些字段下面有这个值。最好能详细点,谢谢 展开
 我来答
时间流逝杀
2017-09-27
知道答主
回答量:5
采纳率:0%
帮助的人:2.5万
展开全部
--oracle无穷解查询数据库中的所有数据
--TEST0418为表属于的用户(不知道哪个用户,可以用语句查已知表名,
--表所属的用户--可百度)
--1001E71000000002RWGW :为所查询的内容,也可改为模糊查询
DECLARE
V_SQL VARCHAR2(2000);
V_COUNT NUMBER;
BEGIN
FOR XX IN (SELECT TABLE_NAME,COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER='TEST0418' ) LOOP --WHERE OWNER='TEST0418'
BEGIN
V_SQL:= 'SELECT COUNT(1) FROM TEST0418.'||XX.TABLE_NAME ||' WHERE '||XX.COLUMN_NAME||' = ''1001E71000000002RWGW'' '; /*LIKE ''%123%'' ';*/
EXECUTE IMMEDIATE V_SQL INTO V_COUNT;
IF(V_COUNT>=1) THEN
DBMS_OUTPUT.PUT_LINE('SELECT TEST0418.'||XX.COLUMN_NAME ||' FROM '||XX.TABLE_NAME ||' WHERE '||XX.COLUMN_NAME||' = ''1001E71000000002RWGW'' '); /*LIKE ''%123%'' ');*/
END IF;
EXCEPTION
WHEN OTHERS THEN NULL;
END;
END LOOP;
END;
sradf
2012-07-24 · 超过20用户采纳过TA的回答
知道答主
回答量:122
采纳率:0%
帮助的人:82.2万
展开全部
这个只能遍历所有表实现了。。。
写个循环倒是可以实现,不过对数据库的压力应该会很大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
798444628
2012-07-19
知道答主
回答量:40
采纳率:0%
帮助的人:15.3万
展开全部
你可以使用下面两张表进行关联 进行查询
select * from dba_tab_columns;
select * from dba_objects

或者
select A.table_name,B.column_name
from user_tables A,user_tab_columns B
where A.table_name=B.table_name and B.Column_name=‘’
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
for无量天尊
2012-07-19
知道答主
回答量:4
采纳率:100%
帮助的人:4841
展开全部
查询对应的column? 请把问题说的具体点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牛角山麦子
2012-07-19 · TA获得超过1554个赞
知道小有建树答主
回答量:651
采纳率:75%
帮助的人:540万
展开全部
需要有关这个值更多的信息,找到通用的办法并不现实。。。比如我知道一个值是 5,整个数据库至少有几千万记录包含这个数字,怎么知道你到底想看什么?
追问
这个没关系。我就要找到所有有这个值的字段名和表。目前我要查询的值(20个字符)应该没那么多。我随便查询了几个表,都没有。
追答
我有2个想法
1 用spool把所有可能的表的数据都写出到文本文件,然后在文本文件里面搜索
2 直接写查询语句构建sql,写成一个脚本,对每个表的所有列进行查询,用like方式查你的数据。感觉需要写pl/sql
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式