我们有一个包含许多表的大型Oracle数据库.有没有一种方法可以让我查询或搜索,以确定是否有任何具有特定列名的表?

让我看看所有有列的表格:id, fname, lname, address

我忘记添加的细节:我需要能够搜索不同的模式.我必须用来连接的那个并没有我需要搜索的表.

推荐答案

要查找具有特定列的所有表,请执行以下操作:

select owner, table_name from all_tab_columns where column_name = 'ID';

要查找包含任意或全部4列的表,请执行以下操作:

select owner, table_name, column_name
from all_tab_columns
where column_name in ('ID', 'FNAME', 'LNAME', 'ADDRESS');

要查找包含全部4列(不缺少任何列)的表,请执行以下操作:

select owner, table_name
from all_tab_columns
where column_name in ('ID', 'FNAME', 'LNAME', 'ADDRESS')
group by owner, table_name
having count(*) = 4;

Sql相关问答推荐

从以前的非空值行中获取值

转换表中的数据

过go 四周未填充的数据,即W50,51,52-SQL

PostgreSQL:按小时查看调整日期

从列中提取子字符串的ORDER BY CASE语句

每个分组最多 Select 最后 2 个值并并排显示它们

根据要过滤的列的值进行联接和分组

没有调用子查询的嵌套 JOIN语法是什么?

如何使用Informix创建一个临时表,将数据从根表导入并使用筛选条件

带聚合函数的 percentile_cont

根据潜在空值的条件对记录进行计数

为重复的项目编号显示正在处理

在 postgresql 中保存带有时间戳的几何类型数据

Django only() 和 values() 不适用于 prefetch_related()

连续几天购买的客户

SQL日期比较用例;月初至今的报告

查找具有相同连接列数据的所有记录

连续日期的SQL

SQL/Postgres:按日期和其他属性对相关性能进行分组

snowflake插入覆盖行为