http://blog.csdn.net/liguihan88/article/details/3002403

无疑注释现在都被大家接受和认可,在大家编程用的IDE中都提供或有第三方插件来支持提取注释内容实现

快速了解结构的功能。但在数据库的脚本编写方面我也是经历了百般折磨后总结了一些东西发来与大家切磋。

下面来看一个Oracle建表的方式。

create table ctable_name

(

       field1 varchar2(20), --注释的内容1

       field2 number,       --注释的内容2

       field3 char(2),      --注释的内容3

       field4 date          /*注释的内容4*/ 

)

之前一直都是这样来建表,觉得快速也好理解,其实数据库结构不复杂的情况下我也喜欢这种方式,但当数据库结构很复杂的时候维护起来就很头疼,一个SQL几百K,看的你眼都花了,而且有N个这样的SQL文件,那么在对不了解的复杂的数据库结构实现快速编程方面,为了了解结构查找注释的工作量也很大。

尤其公司项目已经做了5年了,好多SQL脚本都没了,那么数据结构只能问老的同事,但对于人员更替频繁的公司当老程同事都换了几批,都不在了,没人可问,那么维护人员或后续开发人员就掉进了无尽的痛苦中,好多问题都是出在这上面。后期投入成本也是很巨大的。如果数据库结构命名什么的比较规范还好,可以凭字面意思确定大概用途,反之真实苦不堪言。而且知识的传递当中是有人为因素导致的缺失的。举例来说就是一般员工离开公司之前会用一个月的时间来交接,但大部分都是用

一周左右的时间来交接工作,那么交接的自然会有意识的忽略一些小的或掩盖一些有问题的地方只说主要好使的地方,如果交接的是一个对结构了解的同事还好,根据相应的经验,承接不是问题,但如果交接给新的同事,新同事接起来很费劲,而要走的同事要进的公司还催他速度办离职,那么缺失的部分就要新同事来弥补,当然如果他是个负责的人当他发现虽然项目可以进行或说程序可以跑起来但有些东西,一般是细节的东西他还不了解需要打电话给原来的同事来弄清楚,那么也不会有什么问题,但我说的是如果,一般的人在看到项目能够进行(程序能跑起来)是不会去弄那些东西的,这样循环下去,最后维护这个程序或后续开发的倒霉蛋就有的苦吃了,我体会过这样的痛苦,所以我深有体会,估计别的公司一定也会有这种现象。

 

那么总结下可能出现的情况:

1.SQL脚本内容很多,格式不规范,阅读不方便,连带查找也不是很高效。

2.SQL脚本很多,且每个都存在1的问题,仍然不效率。

3.数据库工作交接中存在的细节遗失。

4.出现3的问题而且数据库对象命名不规范,后续维护人员对数据库对象含义存在歧义性,连带产生的问题趋近与无穷大,

精神折磨趋近与无穷大,导致不想干下去跳槽走人的概率趋近于1。

那么总结后当然要提出一个我认为好的解决方案,用comment关键字来解决这个问题,看看下面的方式

create table ctable_name

(

 

       field1 varchar2(20), --注释的内容1

       field2 number,       --注释的内容2

       field3 char(2),      --注释的内容3

       field4 date          /*注释的内容4*/ 

)

--select * from ctable_name;

comment on table ctable_name is '对表注释的内容';/*给表添加注释的方式*/

select * from user_tab_comments where table_name = 'CTABLE_NAME';/*查询某表的注释*/

 

comment on column ctable_name.field1 is '对field1列注释的内容';/*给列添加注释内容的方式,有多少个列应该写多少个*/

select * from user_col_comments where table_name = 'CTABLE_NAME' and column_name = 'FIELD1';/*查询某表下某列的注释*/

 

上面解决方案把我上面提到的问题都解决了,本质是利用ORACLE中的数据字典的功能,那么虽然在编写脚本的时候可能会多一些工作量,但他能达到的效果远大于那一点工作量。

 

这里的编辑器真烂,截图就不传了,到时候你在数据库里执行上面的语句自己看吧。下面说说他的好处。

1.可以通过SQL语句快速查询,只要知道表名和字段名定位注释极方便快速。

2.注释内容是存储在字典表里的,只要表结构还在,那么SQL脚本即使没有了也可以定位查询。

3.不需要猜字段是什么意思,因为在简表的时候已经给了没有二意的注释,后期承接明确。

4.可以编写自己的小工具来加速数据结构的学习过程,方便新员工。

5.极力推荐大家这么做,同事也可以现在对原库表结构填补注释。

 

匆匆写了一点,很多地方没说的清楚,欢迎的大家来一起切磋。我已经在我后续的项目中这么做了,确实好处颇多,最后套用赵本山的话来结束“谁用谁知道”。

http://blog.sina.com.cn/s/blog_6b7c2750010174oc.html

一、comment是oracle数据库系统的关键字,所以能用来命名表明或字段名



二、comment关键字用于对表,字段添加注释,有利于用户对表结构以及数据库对象含义的理解。



三、用户可以通过数据字典视图来查询表或字段的数据信息,可查询的相应视图为:

1. 访问自己用户的注释信息要查询的数据字典视图(the date directory views)

user_tab_comments;表注释:有三个字段TABLE_NAME,TABLE_TPYE,COMMENTS

user_col_comments;表字段注释:有三个字段TABLE_NAME,CLUMN_NAME,COMMENTS



2. 访问其他用户的注释信息要查询的数据字典视图(the date directory views)

all_tab_comments;表注释:有四个字段OWNER,TABLE_NAME,TABLE_TPYE,COMMENTS

all_col_comments;表字段注释:有四个字段OWNER,TABLE_NAME,CLUMN_NAME,COMMENTS



3. DBA权限用户可访问所有用户的注释信息要查询的数据字典视图(the date directory views):

dba_tab_comments;表注释:有四个字段OWNER,TABLE_NAME,TABLE_TPYE,COMMENTS

dba_col_comments;表字段注释:有四个字段OWNER,TABLE_NAME,CLUMN_NAME,COMMENTS



四、comment的使用实例:

create table OB_CALL_DATE_LOG



CALL_ID VARCHAR2(60);

PROJECT_ID VARCHAR2(30);

COMMENTS VARCHAR2(200)





则在sql脚本中可以写:

select * from OB_CALL_DATE_LOG;

comment on table OB_CALL_DATE_LOG is ‘该表是话单信息表’



select * from user_tab_comments where TABLE_NAME=’OB_CALL_DATE_LOG’

comment on columm OB_CALL_DATE_LOG.PROJECT_ID is ‘项目标识’



select * from user_col_comments where TABLE_NAME=’OB_CALL_DATE_LOG’ and column_name=‘PROJECT_ID’



这样就对数据库表,表的各个字段有了了解。

oracle 之 COMMENT的更多相关文章

  1. oracle中用comment on的用法

    oracle中用comment on命令给表或字段加以说明,语法如下:COMMENT ON  { TABLE [ schema. ]    { table | view }  | COLUMN [ s ...

  2. oracle 之 COMMENT 分类: H2_ORACLE 2014-04-24 15:30 386人阅读 评论(0) 收藏

    http://blog.csdn.net/liguihan88/article/details/3002403 无疑注释现在都被大家接受和认可,在大家编程用的IDE中都提供或有第三方插件来支持提取注释 ...

  3. oracle comment on的用法

    转:http://www.2cto.com/database/201109/106249.html   oracle中用comment on命令给表或字段加以说明,语法如下:COMMENT ON  { ...

  4. ORACLE COMMENTON 使用

    oracle中用comment on命令给表或字段加以说明,语法如下:COMMENT ON  { TABLE [ schema. ]    { table | view }  | COLUMN [ s ...

  5. 记录一则数据库连接故障ORA-12560,ORA-12518

    环境:Win Server 2008 R2 + Oracle 11.2.0.1 故障:客户反映数据库连接不上,本机sysdba和网络连接都连接不上. 一.确认故障 1.1 服务器尝试sysdba登录 ...

  6. Oracle数据库在给表添加字段的sql中用comment报错

    原因:不同于mysql,Oracle数据库在添加表字段时不能直接用comment,而是单独写一个sql语句,如下: alter table SYS_USER add SENDMSG_LASTTIME ...

  7. Oracle Comment 获取并修改表或字段注释

    select * from dba_tables where owner = 'DINGYINGSI'; select * from user_col_comments where table_nam ...

  8. 【oracle】表说明 COMMENT ON的用法

  9. oracle 存储过程

    来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...

随机推荐

  1. C++服务器设计(一):基于I/O复用的Reactor模式

    I/O模型选择 在网络服务端编程中,一个常见的情景是服务器需要判断多个已连接套接字是否可读,如果某个套接字可读,则读取该套接字数据,并进行进一步处理. 在最常用的阻塞式I/O模型中,我们对每个连接套接 ...

  2. Linux下VMWare虚拟机的使用技巧

    使用技巧: 1.虚拟机安装文件:vm-workstation-full-8.0.3-703057.x86_64.bundle,./vm-workstation-full-8.0.3-703057.x8 ...

  3. postgresql配置的一些问题

    ubuntu通过软件中心安装后,配置文件位于如下目录 我用超级用户创建了其它数据库用户,发现是登录不了的,必须还得创建同名的linux用户,甚是麻烦.在配置文件pg_hba.conf中发现了问题. 其 ...

  4. 添加鼠标右键菜单项(EditPlus为例)

    下载Editplus,发现大多是绿色版,这就导致鼠标右键快捷菜单了,使用起来不方面,上网搜集了下资料,解决方法很简单: 首先进入注册表:regedit 然后如图设置新项. 其中editplus是右键菜 ...

  5. Mysql基本类型(五种年日期时间类型)——mysql之二

    转自:<MySQL技术内幕:时间和日期数据类型> http://tech.it168.com/a2012/0904/1393/000001393605_all.shtml

  6. 直接地址跳转C实现

    <C缺陷和陷阱>讲过的一种方法: ( *( void (*)() ) 0 )(); //跳转到0地址执行 解析: 1.void (*p_fun)(void); //声明函数指针 2.voi ...

  7. Qt之图标切分与合并(关键是使用QPixmap的copy函数来拷贝整张图片的某个区域)

    有些时候会将多张有相同功能的图片绘制成一张,不管是使用或者绘制上都会方便很多.对美工与开发者来说也都是一件省事.省力.更省心的方式.二全其美,又何乐而不为呢... 例如:QQ等级           ...

  8. Lisp之根源

    原文:http://www.paulgraham.com/rootsoflisp.html 约翰麦卡锡于1960年发表了一篇非凡的论文,他在这篇论文中对编程的贡献有如 欧几里德对几何的贡献.1 他向我 ...

  9. 图的深度优先遍历DFS

    图的深度优先遍历是树的前序遍历的应用,其实就是一个递归的过程,我们人为的规定一种条件,或者说一种继续遍历下去的判断条件,只要满足我们定义的这种条件,我们就遍历下去,当然,走过的节点必须记录下来,当条件 ...

  10. mongoDB 在windows平台下安装成系统服务

    1,用如截图所示命令将mongoDB安装成windows系统服务,byRuiy Tips[Note,logpath and dbpath根据你命令行指导的路径,这些目录一定要已经创建]