搜索

...知道一个值,如何查询它所在的表,是哪个字段?

发布网友 发布时间:2024-10-24 05:33

我来回答

5个回答

热心网友 时间:2024-11-06 08:19

--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;

热心网友 时间:2024-11-06 08:18

查询对应的column? 请把问题说的具体点

热心网友 时间:2024-11-06 08:16

这个只能遍历所有表实现了。。。
写个循环倒是可以实现,不过对数据库的压力应该会很大

热心网友 时间:2024-11-06 08:19

你可以使用下面两张表进行关联 进行查询
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=‘’

热心网友 时间:2024-11-06 08:19

需要有关这个值更多的信息,找到通用的办法并不现实。。。比如我知道一个值是 5,整个数据库至少有几千万记录包含这个数字,怎么知道你到底想看什么?
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top