【问题标题】:Need Column name where I know the database and table names需要我知道数据库和表名的列名
【发布时间】:2013-04-11 19:02:45
【问题描述】:

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

【问题讨论】:

  • 你能告诉我们你想要完成什么吗?这可能会帮助某人帮助您。
  • 您可以调整来自herehere(或您可以搜索的许多其他人)的答案之一,以仅查看特定表格。另外,“数据库”真的是指“模式”吗?

标签: oracle oracle11g


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    1. 生成您的搜索查询:

      选择选择'|| 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 中的一列)

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      相关资源
      最近更新 更多