OracleSync2MySQL
OracleSync2MySQL copied to clipboard
Oracle to MySQL, PolarDB, Percona Server MySQL, MariaDB, OceanBase, TiDB, GaussDB for MySQL
因为之前的oracle数据库中利用了blob字段存放了xml报文字符串,而mysql longtext下可以正常显示xml报文字符串,longblob下就无法正常显示xml报文字符串中的中文字!
 当数据库表名用大写的时候,使用自定义迁移表会显示找不到这个表.把数据库表名改成小写后就能找到了并且能写入,
 碰到这种怎么解决呢?
root.go文件调用 `db.TableCreate(logDir, tableName, ch)` 之前,没有将表名转大写,函数内部的 `colTotalSql` 查询不到表对应的列,进而导致`createTblSql`拼接的结果不完整(实际拼接结果为:```create table `abc` ( ``` )。 转大写的逻辑在 create.go 里是有的,我本地修改源码,把这一段复制过来可以正常创建数据表了: ```go if selFromYml { //-s自定义迁移表的时候,统一把yml文件的表名转为大写(否则查询语句的表名都是小写),原因是map键值对(key:value),key的值始终为小写的值 tableName = strings.ToUpper(tableName) } ``` 由于对go语言不熟悉,还请作者自己确认后调整一下。
number(16,0)无法转成mysql8的bigint,但是number(12,0)可以转bigint
操作系统:win8.1 数据库:oracle11.2.0.1 mysql8.0.28 OracleSync2MySQL:OracleSync2MySQL-win-x64-v0.0.7 转换时报如下错误: level=fatal msg="select trim(',' from (xmlagg(xmlparse(content '\"'||column_name||'\"'||',') order by COLUMN_ID).getclobval())) from user_tab_columns where table_name='这是表名' exec failed pool=0xdd8bf9bef0 stats=busy=123 open=123 max=0 maxLifetime=0s timeout=5m0s waitTimeout=0s params={authMode:0 connectionClass: connectionClassLength:0...