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批量添加注释的主要内容,如果未能解决你的问题,请参考以下文章