怎么显示Oracle数据库表中的列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么显示Oracle数据库表中的列相关的知识,希望对你有一定的参考价值。

在Oracle 中 show columns from Tables 怎么表示

显示Oracle数据库表中的列有以下两种方式。

1、在命令窗口下输入desc 表名。

如:

desc test;

2、通过sql语句查询,语句如下:

select * from user_tab_cols where table_name=\'TEST\';

注意:表名必须大写。

参考技术A 显示Oracle数据库表中的列,应该在SQL*Plus环境中使用查看表结构命令:
SQL> DESCRIBE 表名
执行上面的命令后,在屏幕中可以显示出该表的所有字段结构,即1.字段名称,2.是否为空?3.类型本回答被提问者采纳
参考技术B select 列名 from 表名字

Oracle select 语句显示两个表中的匹配列?没有数据,只有两个表中都存在的列名

【中文标题】Oracle select 语句显示两个表中的匹配列?没有数据,只有两个表中都存在的列名【英文标题】:Oracle select statement to show matching columns in two tables ? No data just the column names that exist in both the tables 【发布时间】:2021-02-04 18:47:07 【问题描述】:

如何在 oracle db 的两个表中显示所有相似的列?

【问题讨论】:

【参考方案1】:

听起来你只是想要这样的东西。

select t1.column_name 
  from all_tab_columns t1
 where t1.owner = <<table1 owner>>
   and t1.table_name = <<table1 name>>
intersect
select t2.column_name 
  from all_tab_columns t2
 where t2.owner = <<table1 owner>>
   and t2.table_name = <<table1 name>>

如果您愿意,也可以将其写为joinexists。但从可读性的角度来看,intersect 对我来说更有意义。您可以使用dba_tab_columnsuser_tab_columns 而不是all_tab_columns,具体取决于您在数据库中拥有的权限、您是否知道这些表在您当前的架构中等等。

【讨论】:

您好 Justin,上面的脚本在 t1.owner 处引发了 Invalid Identifier 错误。有什么建议么 ?两个表都在相同的模式中,我所做的只是将 ODB 添加到 t1.owner = 'odb' 和 t1.table_name = 'xyz'。 @sree - 对不起,脑子放个屁。引用了错误的表。【参考方案2】:

另一种方法是聚合:

select atc.column_name,
       (case when count(*) = 2 then 'Both'
             when min((atc.owner) = :owner1 and min(atc.table_name) = :table1
             then 'Table1 only'
             else 'Table2 only'
        end) 
from all_tab_columns atc
where (atc.owner = :owner1 and atc.table_name = :table1) or
      (atc.owner = :owner2 and atc.table_name = :table2) 
group by atc.column_name;

这种方法的优点是它很容易推广到显示所有列:

select atc.column_name 
from all_tab_columns atc
where (atc.owner = :owner1 and atc.table_name = :table1) or
      (atc.owner = :owner2 and atc.table_name = :table2) 
group by atc.column_name
having count(*) = 2;

【讨论】:

以上是关于怎么显示Oracle数据库表中的列的主要内容,如果未能解决你的问题,请参考以下文章

oracle查询怎么多个表的第一列

如果 Oracle OBIEE 中的列为空,则隐藏数据透视表中的列

oracle 数据库 怎么把一个表中的一个字段按规律拆分,并显示出来

oracle如何快速判断表中的某列是不是有空值

Oracle select 语句显示两个表中的匹配列?没有数据,只有两个表中都存在的列名

Oracle过程增加字符串数据类型并将其存储为表中的列之一