如何在Oracle中根据值找到表名
如何在Oracle中根据值找到表名
这个问题已经有答案了:
如何根据我在Oracle中传递的值找到表名?查询应该检查模式中的所有表,以检查给定值是否存在于任何表中
admin 更改状态以发布 2023年5月24日
根据您的描述,您基本上有三种不同的选择,可以实现所需的结果:
-
您可以查询user_tables表并检查您模式中可用的所有表。可以从任何用户调用此表,因此您不需要任何特定的权限。
SELECT * FROM USER_TABLES WHERE TABLE_NAME LIKE '%SOMETHING%';
-
您可以查询all_tables表。为此,您可能需要一些更好的特权,因为调用user_tables时需要。
SELECT * FROM ALL_TABLES WHERE TABLE_NAME LIKE '%SOMETHING%';
-
您可以查询dba_tables表。正如您预期的那样,对于此表,您将需要很大的特权才能检索所需的信息。
SELECT * FROM DBA_TABLES WHERE TABLE_NAME LIKE '%SOMETHING%';
提示:
如果您不太确定您正在寻找一张表,请使用ALL_OBJECTS表并确定对象的类型。