oracle到mysql批量添加注释

Posted 久违的太阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle到mysql批量添加注释相关的知识,希望对你有一定的参考价值。

最近在做一个项目,需要将oracle的数据实时同步到gbase中,经过研究发现gbase底层就是mysql,在同步过程中发现表的注释没有进行同步,这里需要手工添加表的注释.

查询了一圈发现了mysql的添加注释只能通过alter table modify column来进行,而在modify的时候需要写上字段类型,这里如果不小心写错了很可能就把表结构给修改了,不得不吐槽一下,这都是什么垃圾语法,而oracle就很好,添加注释直接使用comments语法就可以了.

没有办法,想了一下,这里只能通过拼接sql来执行了,sql如下:
 

select 'alter table ods_zhyw_'||a.table_name||' modify column '||
a.column_name||' '||
decode(
substr(a.data_type,1,4),
'NUMB','decimal('||a.DATA_PRECISION||','||a.DATA_SCALE||')',   --number
'VARC','VARCHAR('||DATA_LENGTH||')',     --VARCHAR
'NVAR','VARCHAR('||DATA_LENGTH||')',     --NVARCHAR
'DATE','datetime',                           --DATE
'TIME','datetime',                      --timestamp
'BLOB','BLOB',                               --BLOB
'CHAR','VARCHAR('||DATA_LENGTH||')',         --CHAR
'CLOB','text')                               --clob
||' comment '''||b.commentS||''';'
from dba_tab_columns a,dba_col_comments b
where a.owner=b.owner and a.table_name=b.table_name
and a.column_name=b.column_name
and a.table_name='XXXX';

这里我只做了常见的字段类型的转换.下面是执行后的效果:

 

 

 

以上是关于oracle到mysql批量添加注释的主要内容,如果未能解决你的问题,请参考以下文章

oracle到mysql批量添加注释

Oracle 与 MySQL 批量添加

Oracle 批量插入数据怎么做

Oracle 批量插入数据怎么做

mysql存储过程怎样批量插入数据

复制 表注释