【发布时间】:2013-04-11 19:02:45
【问题描述】:
我知道数据库和表名,需要找到一个列名。如emp 表中的示例;我知道数据 7369 和表名为emp,我需要将列名作为empno。我的表有数百列,搜索每个列名变得越来越困难。
【问题讨论】:
我知道数据库和表名,需要找到一个列名。如emp 表中的示例;我知道数据 7369 和表名为emp,我需要将列名作为empno。我的表有数百列,搜索每个列名变得越来越困难。
【问题讨论】:
您别无选择,只能在每一列中进行搜索。请注意,尽管此值可能会出现在多个列中和/或在单个列中多次出现。没有办法限制它在整个表格中出现的频率。
这是数据库的重点;存储在列中的所有内容,最重要的是,该列具有含义。如果您将存储在列中的数据与含义分离,那么您将不得不搜索所有内容。
【讨论】:
两步,不使用游标或复杂的pl/sql,只用SQL Plus。
生成您的搜索查询:
选择选择'||
COLUMN_NAME ||
',count(*) from emp where ' ||
列名 || ' = 7369 按 '|| 分组
COLUMN_NAME || ';'
从科尔斯
其中 table_name = 'EMP';
EG:
--------------------------------------------------------------------------------------
select SECOND,count(*) from TESTER where SECOND = 7369 group by SECOND;
(在我的环境中,Second 是表 TESTER 中的一列)
捕获输出,清理标题等,然后运行它。
它将返回匹配的每一列,以及匹配的行数。
【讨论】: