如何将mysql中的数据导入到oracle数据库中

之前做这个迁移的时候...2 02 2 年,在北京...好像花了我很长时间...一开始对MySQL Migration Toolkit完全不了解...运行后...点击下一步...一直到SourceDatabase...呃...数据库系统...我记得我选的是OracleDatabaseServer...就弹出提示...要加载ojdbc1 4 .jar...我惊呆了...从来没见过这个东西...找驱动...加载后...界面变了...填写 Oracle连接信息...各种用户名和密码...点击下一步...进入TargetDatabase...默认是MySQLServer...ConnectionParameters...我填写了我的服务器地址...端口号3 3 06 ...用户名root...密码...发生了什么...我忘记了...我刷了...我点击了测试连接...屏幕一闪...弹出“连接成功”...我当时也很困惑...然后点击下一步...进入SourceSchemataSelection...有一堆Oracle schemata 这里列出来了...我记得我点了几个...要迁移...点击Next...进入ObjectTypeSelection...点击Detailedselection...在左边的列表中...我把不想迁移的表一一拖到了右边...其余的...都是默认选择的...点击Next...进入ObjectMapping...这一步是最麻烦的...OracleSchema...Default Multilingual...点击SetParameter...OracleTable...Default User Defined...charset=gbk... collation=gbk_general_ci...我在电脑上看了半天...也许我有偏见...我忘了为什么选择这些...反正我选了...点击Next...进入ManualEditing...这里需要修改表脚本...Oracle和MySQL语法很不一样...时间戳默认值sysdate...MySQL不识别...我一一改了...ShowAllObjects...MigeratedObjects...点击Advanced...编辑脚本...ApplyChanges...保存...点击Next...然后Next... 开始报错...呃...错误信息...我又回到ManualEditing...重新修改脚本...重复了好几次...终于成功了...导入数据的时候...速度很慢...估计有几百万条记录...CLOB数据...又报错...“Packetslargerthanmax_allowed_packetarenotallowed”...我爆炸了...检查一下...max_allowed_packet...默认是1 M...我得改...找到my.ini...添加一行 在[mysqld]... max_allowed_packet=1 6 7 7 7 2 1 6 ... 重启MySQL... 还好... 1 6 M... 够了... 看来... 就这样了...

mysql和oracle之间的几个步骤转换

哎呀,说到MySQL和Oracle之间的方法转换,这里面还真是有点学问啊。
在我从事问答论坛的十年里,我看到很多人被困在其中。

先说第一个,数据和字符的转换。
例如,在 MySQL 中,如果要将日期格式化为“年-月-日”形式,请使用 date_format(date,'%Y-%m-%d')。
Oracle中相当于这个的就是to_char()函数,其用法也类似。

相反,如果MySQL中有年月日字符串,并且想将其转换为日期类型,请使用str_to_date(date,'%Y-%m-%d')。
Oracle中对应的函数是to_date()函数。

再比如,MySQL中的%Y代表四位数年份,%y代表两位数年份,%m代表月份,格式为(01 1 2 )。
Oracle中也有类似的东西,%c代表月份,格式为(1 1 2 )。

二、MySQL中数据的加减。
例如,如果要在当前日期上添加 5 天,请使用 ADDDATE(expr, days)。
Oracle也有这个函数,即SYSDATE。

哎,说实话,我当时并不太明白这些细节。
我后来才发现他们。
然而,您使用这些方法的次数越多,它们就会变得越熟悉。
请记住,这些方法在不同数据库之间进行转换,关键是理解每个符号的含义。
示例:%Y 和 %y,一个具有四位数年份,另一个具有两位数年份。
如果你犯了一个错误,就会造成混乱。

总之,这些转换方法在实际操作中被广泛使用。
如果你掌握了它们,你就可以轻松处理工作中类似的问题。
然而,最终,数据库需要更多的实践和探索。