找到包含一个用户指定值的表的名称

问题描述 投票:-4回答:1

对于用户(用户A)我有几个表(table1,table2,...,表n)具有相同的字段(field1,field2,field3,field4),我想知道包含该表的表的名称字段4的值x(其中field4 = x)

sql oracle
1个回答
0
投票

举例来说:用户SCOTT(标准的Oracle用户/架构)有两个表,EMPDEPT,两个表都有一个列DEPTNO。我想在列:x中找到哪个表(或多个表)具有值DEPTNO。 (注意我如何允许我搜索的值是一个绑定变量 - 所以我可以将查询重用于不同的值。)我只对识别表名感兴趣,所以我会在每个表中停止搜索价值被找到。

select  'EMP' as table_name
  from  scott.emp
  where deptno = :x and rownum = 1
union all
select  'DEPT' as table_name
  from  scott.dept
  where deptno = :x and rownum = 1
---  etc.  (union all for all tables of interest)

请注意,表格都具有相同列的事实无关紧要。每个表必须有一列可能包含值:x(假设这一列在所有表中具有相同的数据类型)。

另请注意,运行此查询的用户必须具有SCOTT模式中表的权限(显然!)

© www.soinside.com 2019 - 2024. All rights reserved.