【发布时间】:2018-09-13 02:11:48
【问题描述】:
我试图找出某个特定值在 Oracle 数据库的特定列中出现的次数。该列在几十个表中使用,我将不得不多次运行查询,所以我不想单独查询每个表。我可以获取要搜索的表格列表,例如:
Select table_name from all_tab_cols
join all_tables using (table_name)
where column_name = 'EmployeeId' and num_rows > 0
下一步是遍历该表名列表,并输出包含 EmployeeId 列中特定值的每个表。例如,输出可能是这样的:
**Table Name Column_name # Rows for EmployeeId = '123456'**
Table 1 EmployeeId 1
Table 2 EmployeeId 12
etc.
我不是开发人员,也没有在 SQL 脚本中使用游标的经验,因此我们将不胜感激。
【问题讨论】:
-
不相关,但是:连接应该在
owner和table_name,而不仅仅是table_name(或者使用user_tables和user_tab_columns代替 -
可能该列被命名为
'EMPLOYEEID'而不是'EmployeeId'。 -
它实际上是 2000 年初的老式 PeopleSoft 数据库,列是“EMPLID”。为了便于阅读,我只是更改了名称。