oracle到mysql批量添加注释

博客作者分享了在项目中遇到的问题,即如何将Oracle数据库的表注释同步到GBase(基于MySQL)中。由于MySQL添加表注释的语法相对复杂且存在误操作风险,作者通过SQL拼接的方式解决这个问题。文中提到的SQL脚本用于动态生成ALTER TABLE语句,以确保字段类型正确并添加注释,同时展示了部分执行结果。
摘要由CSDN通过智能技术生成

最近在做一个项目,需要将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';

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值