加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱故事小小网_铜陵站长网 (http://www.0562zz.com/)- 视频终端、云渲染、应用安全、数据安全、安全管理!
当前位置: 首页 > 服务器 > 安全 > 正文

从Oracle迁移到MySQL的各种坑及自救方案

发布时间:2021-01-11 12:24:31 所属栏目:安全 来源:网络整理
导读:副标题#e# 《从Oracle迁移到MySQL的各种坑及自救方案》要点: 本文介绍了从Oracle迁移到MySQL的各种坑及自救方案,希望对您有用。如果有疑问,可以联系我们。 本文根据冯帅老师在〖4月8日DBAplus社群上海数据库技术沙龙〗现场演讲内容整理而成. 讲师介绍 冯

接着我又在MySQL创建一张一样的表把数据load了进去.load的语法不是我们今天要分享的重点,它的作用就是把file load into table.可以指定行列分隔符. 可以看到数据load进去了三行,同时也给出了三个警告,第二行一个,第三行两个,分别是int类型的列传了一个空字符串和时间类型的被截取了.查看一下表里的数据,发现和预期的不一样.

然后把刚刚在Oracle那边进行的查询再次查询一下,发现结果都变得不一样了.

这是因为在MySQL里int类型如果插入的为空,结果会自动转成0.

官方文档上有明确的说明:

An empty field value is interpreted different from a missing field:

For string types,the column is set to the empty string.

For numeric types,the column is set to 0.

For date and time types,the column is set to the appropriate “zero” value for the type.

我们再看一下用etl工具迁移过来的数据,可以发现数据被insert成了null,符合了Oracle的意思,其实这就是sqlload时一些弊端,数据类型可能弄得不是原来的数据了.同样的,我们也可以设置成严格的模式,int类型的不允许插入null,我们会在下面的sql_mode里讲到.

2、Python

迁了部分数据之后觉得load数据虽然简单和快,但是瑜不掩瑕,总是有这样那样的问题,迁移之后往往还会同时伴随着大量的数据修复工作.

(编辑:我爱故事小小网_铜陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读