专业的SQL Server、MySQL数据库同步软件

首先,数据库脚本迁移

1,数据结构同步

打开Navicat Premium,单击菜单[工具]-[数据传输],然后在弹出的对话框中选择相应的源库和目标库。

创建SEQUENCE SEQ_ACCOUNT_INFO,以1个最小值1开始,以1个NOMAXVALUE NOCACHE开始;

第二,系统配置调整

1.将Oracle数据库驱动程序添加到pom文件中

\ lt;依赖项

\ lt; groupId com.oracle \ lt;/groupId

\ lt; artifactId ojdbc14 \ lt;/artifactId \\ u>

\ lt;版本\ 10.2.0.4.0 \ lt;/版本gt;

\ lt;范围系统\ lt;/作用域

\ lt; systemPath $ {project_basedir}/lib/ojdbc14-10.2.0.4.0.jar\\u0026lt;/systemPath\\u0026gt;

\ lt;/依存关系

2.调整数据源

Jdbc.properties配置调整

db.driverClassName = oracle.jdbc.driver.OracleDriver

db.url = jdbc:oracle:薄:@ 10.10.1.107:1521:orcl

db.username = root

db.password =根

db.mapper =类路径:mybatis/oracle/* Mapper.xml

validationQuery =从DUAL中选择" x"

三,Java背景调整

1.在Mapper文件中,将自动递增的主键调整为Oracle序列模式

原始的MySQL方法如下:

\ lt; selectKey resultType =" java.lang.Long" keyProperty =" id" order ="之前" \ gt;

选择LAST_INSERT_ID()

\ lt;/selectKey

Oracle排序方法如下:

\ lt; selectKey resultType =" java.lang.Long" keyProperty =" id" order ="之前" \ gt;

从双重选择SEQ_ACCOUNT_INFO.NEXTVAL

\ lt;/selectKey

2.日期(时间)类型调整

日期格式

MySQL数据库使用DATE_FORMAT(日期,格式)函数将日期格式化为字符串,格式可用的标识符为:%Y(年),%m(月),%H(小时),%i (分钟),%S(秒)等。常用格式为”%Y-%m-%d”,”%H:%i:%S”,”%Y%m”等。

Oracle数据库使用TO_CHAR(日期,格式)函数格式化日期,例如格式化当前日期:TO_CHAR(SYSDATE,” yyyy-mm-dd HH:mi:ss”)。

另外,MySQL是弱类型的数据类型。将字符串转换为日期时(对于其他类型也是如此),只要它符合日期格式,就不需要类型转换,但是Oracle必须执行类型转换。 Oracle提供了TO_DATE(date_str,” yyyy-mm-dd hh24:mi:ss”)函数,用于将字符串转换为日期类型。

获取当前日期的函数

MySQL常用的获取当前日期(时间)的函数有:NOW(),SYSDATE(),CURDATE(),CURTIME()等。在Oracle中使用SYSDATE。

计算时差

MySQL数据库使用TIMESTAMPDIFF(间隔,datetime_expr1,datetime_expr2)函数来计算时间差,其中间隔可以是YEAR(年),QUARTER(季度),MONTH(月),WEEK(周),DAY(天) ),HOUR(小时),MINUTE(分钟),SECOND(秒),FRAC_SECOND(毫秒),例如计算到2017年5月1日为止的天数:

SELECT TIMESTAMPDIFF(日期," 2017-05-01",现在());

? MySQL还具有许多计算时间差的函数,例如DATEDIFF(date1,date2)等等。

? Oracle数据库通过减去两个日期直接计算时差,例如计算到2017年5月1日为止的天数:

?计算自2017年5月1日以来的小时数:

SELECT FLOOR(TO_NUMBER(SYSDATE-TO_DATE(" 2017-5-1 00:00:00"," yyyy-mm-dd hh24:mi:ss"))* 24)从双;

3.模糊查询

MySQL使用

concat("%",#{keywords},"%")

在Oracle中使用

"%" || #{keywords} || "%"

四个常见问题

1.删除重复的列以防止在Oracle分页查询期间出错:ORA-00918:该列未明确定义。

2.ORA-00942:表或视图中没有错误,可能是数据库表的名称错误,可能没有权限或帐户不存在,等等。

3.MySQL字符串支持单引号和双引号,但是Oracle仅支持单引号。

4.在Oracle中执行组统计时,必须将所有未聚合的列放在group by子句中。如果涉及排序,则排序的列也必须位于group by子句中。在MySQL 5.7之前,对分组统计信息没有强制性约束。 5.7之后,Oracle和Oracle遵循相同的标准。

5.您不能在Oracle的GROUP BY子句中使用列别名。

6.在Oracle中不能将单引号添加到别名中。

7.MySQL批处理插入和更新必须转换为以begin end开头的Oracle批处理插入和更新

开始

声明

;结束;