我知道数据库和表名,需要查找列名。例如emp
表中的示例;我知道数据7369和表名为emp
,我需要将列名称设为empno
。我的表有数百列,搜索每个列名称变得越来越困难。
答案 0 :(得分:1)
除了搜索每一列外,您别无选择。请注意,此值可能会出现在多列中和/或单列中的多次。没有办法限制它在整个表格中出现的频率。
这是数据库的重点;存储在列中的所有内容,最重要的是,该列具有含义。如果您将存储在列中的数据与含义取消关联,则必须搜索所有内容。
答案 1 :(得分:0)
两个步骤,不使用游标或复杂的pl / sql,只使用SQL Plus。
制作搜索查询:
选择'||
COLUMN_NAME ||
',来自emp的count(*)'||
column_name || '= 7369 group by'||
COLUMN_NAME || ';'
从cols
table_name ='EMP';
EG:
--------------------------------------------------------------------------------------
select SECOND,count(*) from TESTER where SECOND = 7369 group by SECOND;
(在我的环境中,Second是表TESTER中的一栏)
捕获输出,清理标题等,然后运行它。
它将返回匹配的每一列,以及匹配的行数。