前言
- 对接数据,因为对方给我们的数据库是mysql数据库,而我们使用的是oracle
- mysql和oracle的语法有些不同,下面介绍是如何将mysql成功导入到oracle下
三个方面
1. 关于mysql与oracle表结构的不同(创表)
- 我们简单的看下mysql导出的数据是怎样的,拿其中一个表来看看
DROP TABLE IF EXISTS `sys_role`; CREATE TABLE `sys_role` ( `id` varchar(64) COLLATE utf8_bin NOT NULL DEFAULT '', `name` varchar(255) COLLATE utf8_bin DEFAULT NULL, `enName` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '英文名', `roleType` varchar(255) COLLATE utf8_bin DEFAULT NULL , `isSys` int(5) DEFAULT NULL , `delFlag` int(3) DEFAULT '0' , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
- 首先,oracle是用单引号括起来的,而mysql是用`括起来,所以我们全局替换Ctrl+F替换
- oracle表名和字段是不需要用单引号括起来,所以上面的表转换成oracle表结构如下:
create table sys_role (id varchar(64) primary key, name varchar2(255) NOT NULL, enName varchar2(255) NOT NULL, roleType varchar2(255) NOT NULL, isSys int NOT NULL, delFlag int NOT NULL )
2. 关于mysql与oracle表结构的不同(插入数据)
- mysql下数据
INSERT INTO `sys_role` VALUES ('095a0dbe-24aa-4fe9-93cf-15947b2599c4', '超级管理员', 'admin', 'security-role', '1', '权限最高', '0'); INSERT INTO `sys_role` VALUES ('2461ccfb-f4e5-475e-a84a-78563017b978', '演示账号', 'demo', 'user', '0', '用来演示系统的账号', '0'); INSERT INTO `sys_role` VALUES ('57f11d4f-54fd-416f-b01b-dff0e687ab3c', '一般用户', 'common', 'user', '0', '', '0'); INSERT INTO `sys_role` VALUES ('70cbd8e4-cf86-4607-b368-caefe12d3cce', 'tesst', 'tesst', 'user', '0', '', '0'); INSERT INTO `sys_role` VALUES ('e039c9eb-0def-4e03-92ea-025c03314b18', '管理员', 'editor', 'security-role', '1', '', '0');- 还是一样,oracle表名字不需要单引号括起来
INSERT INTO sys_role VALUES ('095a0dbe-24aa-4fe9-93cf-15947b2599c4', '超级管理员', 'admin', 'security-role', '1', '权限最高', '0'); INSERT INTO sys_role VALUES ('2461ccfb-f4e5-475e-a84a-78563017b978', '演示账号', 'demo', 'user', '0', '用来演示系统的账号', '0');INSERT INTO sys_role VALUES ('57f11d4f-54fd-416f-b01b-dff0e687ab3c', '一般用户', 'common', 'user', '0', '', '0');INSERT INTO sys_role VALUES ('70cbd8e4-cf86-4607-b368-caefe12d3cce', 'tesst', 'tesst', 'user', '0', '', '0');INSERT INTO sys_role VALUES ('e039c9eb-0def-4e03-92ea-025c03314b18', '管理员', 'editor', 'security-role', '1', '', '0');
3. 使用plsql文件的命令(command)执行语句
- 不管创表还是插入,我们一般都不会新建个sql窗口直接运行sql
- 会使用plsql工具的文件(file) -- 命令(command)窗口执行
- 英文版在这:
中文版在这:
有什么好处呢?
他可以帮助我们检查语法,哪里执行失败会明确表明,而且有错误信息记得执行完insert操作要commit提交一下哦
最后总结
记录新技术、踩过的坑与大家交流,也很开心文章能帮助到大家,会不定期写更好的文章与大家见面,一个逐渐走向全栈的搬运工的日常!
你的点赞,是我坚持的源头,笔芯~