几种获取oracle用户表字段信息的方法
2009-09-03 17:58
507 查看
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中方法都可以查出指定表的字段基本信息(还有其他的更多信息),可以根据自己的需要灵活选择。
首先创建一个用来测试的表,结构如下:
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中方法都可以查出指定表的字段基本信息(还有其他的更多信息),可以根据自己的需要灵活选择。
相关文章推荐
- oracle获取当前用户表、字段详细信息SQL
- oracle 获取当前用户下的所有表名与字段信息
- oracle获取当前用户表、字段等详细信息SQL
- DB2获取当前用户表、字段详细信息SQL
- DB2获取当前用户表、字段、索引等详细信息
- PHP获取mysql数据表的字段名称和详细信息的方法
- C# 获取类的名,构造方法信息,字段信息,方法信息
- 获取oracle表结构的字段信息
- 获取ORACLE 表字段,表名,以及主键之类等等的信息
- jdbc获取oracle表字段相关信息
- asp.net IIS 部署报错/获取不到当前用户信息 配置方法
- 在程序中获取当前用户信息的方法
- 获取oracle 表字段,表名,以及主键之类等等的信息
- 如何在Service层获取用户session中保存的用户信息的方法
- PHP获取mysql数据表的字段名称和详细信息的方法
- oracle 使用sql获取数据库表、表的字段的多种方法
- JAVA中获取字段信息的方法
- oracle获取当前登录用户的所有表,视图,sequence的相关信息
- 获取oracle 表字段,表名,以及主键之类等等的信息。