create table TEST
(
TESTID varchar(10) not null, --编号
TESTNAME varchar(50) default '', --名称
REMARK varchar(150) default '', --备注primary key (TESTID)
)
oracle 中 建了一个简单的表。
我现在想要一条语句 能够查询出这张表中的表结构。
如: 这个表所属库(tableSpace_name)、表名称(test)、表中的每个字段的类型(varchar)、字段长度(10、50、150)、每个字段的中文名(貌似是comments. 编号、名称、备注等)、我找了几条语句都查不全:select * from sys.user_tab_columns a where a.table_name='TEST'select * from user_constraints uu where uu.table_name='TEST'主要的是中文名的查询 找不到。求高手 指点
select column_name,data_type,data_length,data_precision,data_scale
from user_tab_columns where table_name='EMP';
COLUMN_NAME DATA_TYPE DATA_LENGTH DATA_PRECISION DATA_SCALE
------------------------------ ------------------------------- ----------- -------------- ----------
EMPNO NUMBER 22 4 0
ENAME VARCHAR2 10
JOB VARCHAR2 9
MGR NUMBER 22 4 0
HIREDATE DATE 7
SAL NUMBER 22 7 2
COMM NUMBER 22 7 2
DEPTNO NUMBER 22 2 0
栏位的备注说明: user_col_comments
嗯 我查询了 得出的是每个表的 comments (即每个表的中文名) 现在我是要表中的每个字段的comments(中文名)。这个不知道怎么搞、
select t.TABLE_NAME,t.COLUMN_NAME,t.DATA_TYPE,t.DATA_LENGTH from user_tab_columns t where t.TABLE_NAME='SYS_TEST'
却好多项啊
a.table_name,
b.column_name,
b.data_type,
b.data_length,
c.comments
from user_tables a, user_tab_cols b, user_col_comments c
where a.table_name = b.table_name
and b.column_name = c.column_name
and b.table_name=c.table_name
and a.table_name=table_name
对了 你最后那个 and a.table_name='SYS_TEST'(传如我想查询的表 对吧?)只查到了 一条记录(第一个字段的信息)。。这张表中 有 3个字段啊(要3条记录的)、
a.TABLESPACE_NAME,
b.COLUMN_NAME,
b.DATA_TYPE,
b.DATA_PRECISION,
b.DATA_SCALE,
c.comments
FROM user_tables a, user_tab_columns b, user_col_comments c
WHERE a.TABLE_NAME = b.TABLE_NAME
AND a.TABLE_NAME = c.table_name
AND b.COLUMN_NAME = c.column_name
AND a.TABLE_NAME = upper('&table_name');