几种获取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中方法都可以查出指定表的字段基本信息(还有其他的更多信息),可以根据自己的需要灵活选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值