更多精彩内容尽在leonarding.blog.51cto.com
《Oracle comment on注释信息方法论》
引言:在DBA日常工作中写注释信息可能会经常有,但用Oracle命令来写和使用我想应该不是很多,其实Oracle给我们提供了非常丰富的语言表述语法,而我们日常使用的语法命令占30%~45%。其中Oracle Comment on注释语法就是不常用的。下面来给大家揭秘一下Oracle Comment on注释使用场景和使用方法。
一使用场景
答:一提到使用场景,我又想起一个常常提到的词“运维标准化”。运维标准化的内容这里不必多说,Oracle Comment on注释就是标准化脚本中的一项,大家平时经常编写数据库脚本,但常常只编写管理、业务、性能等方面的脚本,而数据库结构注释脚本却不常写。注释作用就是使其编写的脚本更具有可读性、可维护性、可管理性。在我们的数据中心凡是需要上线的系统其脚本中必须要带有注释信息,这样移交给运维部门之后,运维部门的人员可了解其数据库对象结构信息,这样在数据维护、结构更新、系统升级时非常方便的了解我们系统哪些内容需要变更,变更之后对业务会产生哪些影响,注释信息也便于备查,在系统移交过程中便于双方顺利交接。
二使用方法
官方文档:SQL Language Reference->13 SQL Statements: ALTERTRIGGER to COMMIT->搜索“COMMENT”
语法:
210009151.jpg
从语法上看Oracle中可以对表、列、操作、索引类型、物化视图、挖掘模型进行注释
下面我们以表和列为样本进行演示
1. Oracle Commenton对table进行注释说明
表名:汇总报文生成配置表generate_config
表注释:comment on table generate_config is '汇总报文生成配置表';
2. Oracle Commenton对column进行注释说明
字段中文名
字段英文名
主键ID
iid
报文名称
name
报文类型
type
报文生成方式
generatetype
状态
state
列注释
comment on columntable.column_name is 'comments_on_col_information';
comment on columngenerate_config.iid is '主键ID';
comment on columngenerate_config.name is '报文名称';
comment on columngenerate_config.type is '报文类型';
comment on columngenerate_config.generatetype is '报文生成方式';
comment on columngenerate_config.state is '状态';
3. 查看表的注释
查找指定的表
select * fromuser_tab_comments where TABLE_NAME='GENERATE_CONFIG';
select * fromdba_tab_comments where TABLE_NAME='GENERATE_CONFIG';
select * fromall_tab_comments where TABLE_NAME='GENERATE_CONFIG';
查找注释非空的表
select * fromuser_tab_comments where comments is not null;
4. 查看列的注释
查找指定的列
select * from user_col_commentswhere TABLE_NAME='GENERATE_CONFIG';
select * fromdba_col_comments where TABLE_NAME='GENERATE_CONFIG';
select * fromall_col_comments where TABLE_NAME='GENERATE_CONFIG';
查找注释非空的列
select * fromuser_col_comments where comments is not null;
5.删除注释信息(直接置空即可)
表置空
comment on tablegenerate_config is '';
列置空
comment on columngenerate_config.iid is '';
comment on columngenerate_config.name is '';
comment on columngenerate_config.type is '';
comment on columngenerate_config.generatetype is '';
comment on columngenerate_config.state is '';
三 批量生成表及其字段的注释信息的创建语句
场景:当构建新系统的表脚本时可以使用这个方法快速生成注释创建脚本,还当迁移到新数据库后注释信息发生乱码时可以使用这个方法快速重建。
1.构建表级注释信息脚本语句
select 'COMMENT ONTABLE '||table_name||' IS '''||comments||''';' from user_tab_comments;
'COMMENTONTABLE'||TABLE_NAME||
--------------------------------------------------------------------------------
COMMENT ON TABLEEB_ASSUREEXTEND_CON IS '保理合同信息';
2.构建列级注释信息脚本语句
select 'COMMENT ONCOLUMN '||table_name||'.'||COLUMN_NAME||' IS '''||COMMENTS||''';' from user_col_comments;
'COMMENTONCOLUMN'||TABLE_NAME|
--------------------------------------------------------------------------------
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.IID IS '主键ID';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.COPERATIONID IS '保理业务ID';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.FINANCECODE IS '金融机构编码';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.ASSUREAGREEMENTCODE IS '保理协议编号';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.OPROCCURDATE IS '业务发生日期';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.ORGANID IS '组织机构代码';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.REGISTRATIONTYPECODE IS '登记注册号类型';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.REGISTRATIONNO IS '登记注册号码';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.CONTRACTINUREDATE IS '合同生效日期';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.CONTRACTPAUSEDATE IS '合同终止日期';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.ASSUREPRODUCTCODE IS '保理产品类型';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.CONTRACTVALIDSTATE IS '合同有效状态';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.RECORDOPRTYPEOFINFO IS '信息记录操作类型';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.VALIDITYFLAG IS '数据有效状态标志';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.VALIDITYVARYDATE IS '数据有效状态变更时间';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.DGETDATE IS '获取时间';
COMMENT ON COLUMN EB_ASSUREEXTEND_CON.IREPORTSTATE IS '上报状态';
小结:我们可以使用构建出来的生成语句批量进行创建注释信息
PDF51CTO下载中心:http://down.51cto.com/data/1039022《Oracle comment onz注释信息方法论》 请点击下载
comment 注释 oracle leonarding on
Leonarding
2013.12.11
北京&winter
分享技术~成就梦想
Blog:www.leonarding.com
©著作权归作者所有:来自51CTO博客作者leonarding1的原创作品,如需转载,请注明出处,否则将追究法律责任
oraclecomment注释leonarding on数据库管理