需要列名称,我知道数据库和表名称

时间:2013-04-18 15:16:01

标签: oracle oracle11g

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

2 个答案:

答案 0 :(得分:1)

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

这是数据库的重点;存储在列中的所有内容,最重要的是,该列具有含义。如果您将存储在列中的数据与含义取消关联,则必须搜索所有内容。

答案 1 :(得分:0)

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

  1. 制作搜索查询:

    选择'||        COLUMN_NAME ||        ',来自emp的count(*)'||        column_name || '= 7369 group by'||        COLUMN_NAME || ';'
    从cols table_name ='EMP';

  2. EG:

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

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

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

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