【问题标题】:Retrieve Column names From one table that contain 'report'从包含“报告”的一个表中检索列名
【发布时间】:2015-03-13 01:39:55
【问题描述】:

我需要知道我的表exchangecondition 的列名,其名称中包含“report”。我尝试使用 USER _TAB_COLUMNS 但这不起作用,因为我通过这个查询得到了 no rows selected

select *  from USER_TAB_COLUMNS;

但是,如果我在使用 USER_TAB_COLUMNS 时可以获得行,我可以使用以下查询:

SELECT column_name FROM USER_TAB_COLUMNS WHERE table_name = 'exchangecondition' and  column_name like '%report%'.

有人可以帮帮我吗?

【问题讨论】:

  • 你的意思是选择 * 不起作用并且选择 column_name 起作用吗?您的问题不清楚
  • 除非您在创建表时使用带引号的标识符,否则您需要以大写形式提供表名和(部分)列名。但是,如果您在该视图中看不到任何内容,那么哪个架构拥有“您的”表?
  • @Shankar 是的,我输入 select * from USER_TAB_COLUMNS;作为查询,我没有得到任何行
  • 你是对的@AlexPoole 我使用而不是 USER_TAB_COLUMNS 我使用 all_tab_columns 以及大写的表名和列名,感谢您的回答

标签: sql database oracle oracle11g sqlplus


【解决方案1】:

不要使用 user_tab_columns,而是使用 all_tab_columns,提供大写的表名和列名,提供所有者名称(如果你已经知道的话)。

【讨论】:

  • 我使用而不是 USER_TAB_COLUMNS 我使用 all_tab_columns 以及大写的表名和列名,感谢您的回答
  • 只是我需要知道如何搜索包含数据的 EXCHANGECONDITION 表的 col 可以给我查询吗?!
  • “包含数据的EXCHANGECONDITION表的col”是什么意思?您想根据某些列值查询您的表 EXCHANGECONDITION?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-17
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
  • 2020-12-13
  • 2020-03-29
  • 2013-06-05
相关资源
最近更新 更多