获取oracle 表字段描述,几种获取oracle用户表字段信息的方法

oracle提供了很多有用的子典表来保存表的基本信息,因为在一个项目中要用到动态获取指定表所有字段信息,所以在网上搜集了一下这几种方法:

首先创建一个用来测试的表,结构如下:

create table testTable(

userid integer,

username varchar2(20),

time_stamp date

)

第一种方法: 查询dba_tab_columns

select COLUMN_NAME,DATA_TYPE,DATA_LENGTH

from   dba_tab_columns

where  table_name =upper('testTable')order by COLUMN_NAME

执行结果:

COLUMN_NAME    DATA_TYPE   DATA_LENGTH

--------------          -----------        -----------

TIME_STAMP        DATE               7

USERID                NUMBER          22

USERNAME           VARCHAR2      20

这种方法需要有DBA权限

第二种方法: 查询user_tab_cols

select  COLUMN_NAME,DATA_TYPE,DATA_LENGTH

from  user_tab_cols

where table_name=upper('testTable')

order by COLUMN_NAME

执行结果:

COLUMN_NAME    DATA_TYPE   DATA_LENGTH

--------------          -----------        -----------

TIME_STAMP        DATE               7

USERID                NUMBER          22

USERNAME           VARCHAR2      20

这种方法只能查找当前用户下的表

第三种方法: 查询ALL_TAB_COLUMNS

select distinct COLUMN_NAME,DATA_TYPE,DATA_LENGTH

from ALL_TAB_COLUMNS

WHERE TABLE_NAME= upper('testTable')

执行结果:

COLUMN_NAME    DATA_TYPE   DATA_LENGTH

--------------          -----------        -----------

TIME_STAMP        DATE               7

USERID                NUMBER          22

USERNAME           VARCHAR2      20

这种方法可以查询所有用户下的表

oracle 在存储这些表的信息时,会把表名转换成大写方式,因此在条件中用upper()函数把表名字符转成大写方式

随然以上3中方法都可以查出指定表的字段基本信息(还有其他的更多信息),可以根据自己的需要灵活选择。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部