有没人知道在oracle数据库中,包含列的内容,注释,数据类型;以及表的信息的数据字典 rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SELECT * FROM TAB; 所有表SELECT * FROM ALL_CONS_COLUMNS; 所有表的约束等 select * from col; 所有列 select * from user_tab_columns where table_name='...'; 表的内容:all_tables列的内容、数据类型:all_tab_columns表注释:all_tab_comments列注释:all_col_comments 如何构造一个类似的视图:SELECT "SYSTEM"."V_XT_COL_CMNT"."COMMENTS" , //注释 "SYSTEM"."V_XT_COL_CMNT"."COLUMN_NAME" , //列名 "SYSTEM"."V_XT_COL_CMNT"."DATA_TYPE" , //该列的数据类型 "SYSTEM"."V_XT_COL_CMNT"."OWNER" , //表的拥有者 "SYSTEM"."V_XT_COL_CMNT"."TABLE_NAME" , //表名 "SYSTEM"."V_XT_COL_CMNT"."COLUMN_ID" //列的标识,估计是一个自动赋值的idFROM "SYSTEM"."V_XT_COL_CMNT" WHERE ( SYSTEM."V_XT_COL_CMNT"."OWNER" = :pm_owner ) And ( SYSTEM."V_XT_COL_CMNT"."TABLE_NAME" = :pm_tablename ) 多谢shahand(死磕),已经基本可以,下面贴出我的实现,是用来做自定义查询的:1、表的所有者和表名:select table_name, comments from system.v_xt_tbl_cmnt where owner = 'EHD' and table_name = :S_STR; 在系统表all_tab_comments来完成该功能,创建一个视图。 OWNER TABLE_NAME TABLE_TYPE COMMENTS //在system用户下创建的。 create view v_xt_tbl_cmnt as select owner,table_name,comments from all_tab_comments;2、根据表名和表的所有者来查询出列的注释,列名,类型 SELECT "SYSTEM"."V_XT_COL_CMNT"."COMMENTS" , //注释 //从all_col_comments中获得 "SYSTEM"."V_XT_COL_CMNT"."COLUMN_NAME" , //列名* //从all_tab_columns中获得 "SYSTEM"."V_XT_COL_CMNT"."DATA_TYPE" , //该列的数据类型 * "SYSTEM"."V_XT_COL_CMNT"."OWNER" , //表的拥有者* "SYSTEM"."V_XT_COL_CMNT"."TABLE_NAME" , //表名 * "SYSTEM"."V_XT_COL_CMNT"."COLUMN_ID" //列的标识,估计是一个自动赋值的id * FROM "SYSTEM"."V_XT_COL_CMNT" WHERE ( SYSTEM."V_XT_COL_CMNT"."OWNER" = :pm_owner ) And ( SYSTEM."V_XT_COL_CMNT"."TABLE_NAME" = :pm_tablename ) 由上面的两个表来,在最初里面没有注释的信息,需要添加。 all_col_comments //表 OWNER NOT NULL VARCHAR2(30) TABLE_NAME NOT NULL VARCHAR2(30) COLUMN_NAME NOT NULL VARCHAR2(30) COMMENTS VARCHAR2(4000) all_tab_columns //表 create view v_xt_col_cmnt as select all_col_comments.comments, all_tab_columns.column_name, all_tab_columns.data_type, all_tab_columns.owner, all_tab_columns.table_name, all_tab_columns.column_id from all_col_comments,all_tab_columns where all_col_comments.owner=all_tab_columns.owner and all_col_comments.table_name=all_tab_columns.table_name and all_col_comments.column_name=all_tab_columns.column_name;3、用户选择2中的结果,设置列的筛选条件。 SELECT "XTCOLSLT"."COLNAME" , //列名 "XTCOLSLT"."COLTYPE" , //列的类型 不显示出来。 "XTCOLSLT"."OPERATOR" , //操作 "XTCOLSLT"."VALUE" , //值 "XTCOLSLT"."LOGICAL" //关系 FROM "XTCOLSLT" 4、读3中的数据完成where子句。设置自定义的查询条件表达式。 希望大家提点意见! 身边没有oracle的工具书,有谁知道怎么为表和列加注释。 已经解决。comment on column ehd.gz_item_base.name is '姓名'; 單元測試時, 如何看自己Connection Session 數目 关于oracle函数问题 请问如何分发数据库呢? 存储过程传入参数的问题 PROC程序在IBM机上编译不过去,HP上是没有问题的 oracle不能正常使用 请大家帮忙推荐 哪儿有developer下载 高分请教日期和时间问题,高手请进!!! 怎样在建多个二进制字段(图像)并用ADO访问 有什么工具可以把xml中的数据导入oracle中? 请教一个恢复数据文件的问题
SELECT * FROM ALL_CONS_COLUMNS; 所有表的约束
等
SELECT "SYSTEM"."V_XT_COL_CMNT"."COMMENTS" , //注释
"SYSTEM"."V_XT_COL_CMNT"."COLUMN_NAME" , //列名
"SYSTEM"."V_XT_COL_CMNT"."DATA_TYPE" , //该列的数据类型
"SYSTEM"."V_XT_COL_CMNT"."OWNER" , //表的拥有者
"SYSTEM"."V_XT_COL_CMNT"."TABLE_NAME" , //表名
"SYSTEM"."V_XT_COL_CMNT"."COLUMN_ID" //列的标识,估计是一个自动赋值的id
FROM "SYSTEM"."V_XT_COL_CMNT"
WHERE ( SYSTEM."V_XT_COL_CMNT"."OWNER" = :pm_owner ) And
( SYSTEM."V_XT_COL_CMNT"."TABLE_NAME" = :pm_tablename )
1、表的所有者和表名:select table_name, comments from system.v_xt_tbl_cmnt
where owner = 'EHD' and table_name = :S_STR;
在系统表all_tab_comments来完成该功能,创建一个视图。
OWNER
TABLE_NAME
TABLE_TYPE
COMMENTS //在system用户下创建的。
create view v_xt_tbl_cmnt as select owner,table_name,comments from all_tab_comments;
2、根据表名和表的所有者来查询出列的注释,列名,类型
SELECT "SYSTEM"."V_XT_COL_CMNT"."COMMENTS" , //注释 //从all_col_comments中获得
"SYSTEM"."V_XT_COL_CMNT"."COLUMN_NAME" , //列名* //从all_tab_columns中获得
"SYSTEM"."V_XT_COL_CMNT"."DATA_TYPE" , //该列的数据类型 *
"SYSTEM"."V_XT_COL_CMNT"."OWNER" , //表的拥有者*
"SYSTEM"."V_XT_COL_CMNT"."TABLE_NAME" , //表名 *
"SYSTEM"."V_XT_COL_CMNT"."COLUMN_ID" //列的标识,估计是一个自动赋值的id *
FROM "SYSTEM"."V_XT_COL_CMNT"
WHERE ( SYSTEM."V_XT_COL_CMNT"."OWNER" = :pm_owner ) And
( SYSTEM."V_XT_COL_CMNT"."TABLE_NAME" = :pm_tablename )
由上面的两个表来,在最初里面没有注释的信息,需要添加。
all_col_comments //表
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
COLUMN_NAME NOT NULL VARCHAR2(30)
COMMENTS VARCHAR2(4000)
all_tab_columns //表
create view v_xt_col_cmnt as
select all_col_comments.comments,
all_tab_columns.column_name,
all_tab_columns.data_type,
all_tab_columns.owner,
all_tab_columns.table_name,
all_tab_columns.column_id
from all_col_comments,all_tab_columns
where all_col_comments.owner=all_tab_columns.owner and
all_col_comments.table_name=all_tab_columns.table_name and
all_col_comments.column_name=all_tab_columns.column_name;
3、用户选择2中的结果,设置列的筛选条件。
SELECT "XTCOLSLT"."COLNAME" , //列名
"XTCOLSLT"."COLTYPE" , //列的类型 不显示出来。
"XTCOLSLT"."OPERATOR" , //操作
"XTCOLSLT"."VALUE" , //值
"XTCOLSLT"."LOGICAL" //关系
FROM "XTCOLSLT"
4、读3中的数据完成where子句。设置自定义的查询条件表达式。 希望大家提点意见!