0

我知道数据库和表名,需要找到一个列名。如表中的示例emp;我知道数据 7369 和表名为emp,我需要将列名作为empno。我的表有数百列,搜索每个列名变得越来越困难。

4

2 回答 2

1

您别无选择,只能在每一列中进行搜索。请注意,尽管此值可能会出现在多个列中和/或在单个列中出现多次。没有办法限制它在整个表格中出现的频率。

这是数据库的重点;存储在列中的所有内容,最重要的是,该列具有意义。如果您将存储在列中的数据与含义分离,那么您将不得不搜索所有内容。

于 2013-04-18T16:23:37.323 回答
0

两个步骤,不使用游标或复杂的pl/sql,只使用SQL Plus。

  1. 生成您的搜索查询:

    选择选择'|| COLUMN_NAME || ',count(*) from emp where ' || 列名 || ' = 7369 按 '|| 分组 COLUMN_NAME || ';'
    从 cols where table_name = 'EMP';

例如:

--------------------------------------------------------------------------------------
select SECOND,count(*) from TESTER where SECOND = 7369 group by SECOND;

(在我的环境中,Second 是表 TESTER 中的一列)

捕获输出,清理标题等,然后运行它。

它将返回匹配的每一列,以及匹配的行数。

于 2013-04-18T17:15:37.270 回答