mysql转oracle注意事项
1.mysql中有自增长,oracle用新建sequence代替。
2.在实体类的id要指定相关的sequence
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_pl_policy")
@SequenceGenerator(name="seq_pl_policy",allocationSize=1,initialValue=1, sequenceName="seq_pl_policy")
3.注意数据库中的数据类型改动,比如text转为clob等
4.注意数据库中列的名称中不能含有oracle中的关键词,如:size,date等
5.在sql代码中,oracle比mysql严格;例子如下:
mysql中可以写group by createtime desc而oracle只能写group by createtime。
mysql中可以出现size和date作为别名,但oracle会报错。
mysql中可以使用“||”,而oracle只能用or。
mysql中别名可以是 AS 'highLevelNum' ,而oracle只能是AS highLevelNum
mysql中在select中可以出现非group by 中的列,而oracle中必须是只能是group by中的列。如:
mysql中:select t.c_eve_level as evelevel,to_char(t.c_create_time,"yyyymmddhh24") as evetime,sum(t.c_match_num) as evematch
from t_eve t
where 1 = 1 and (t.c_from_email <> NULL or t.c_from_email <> '')
group by t.c_eve_level,t.c_create_time
order by t.c_create_time desc
oracle中:select t.c_eve_level as evelevel,to_char(t.c_create_time,"yyyymmddhh24") as evetime,sum(t.c_match_num) as evematch
from t_eve t
where 1 = 1 and (t.c_from_email <> NULL or t.c_from_email <> '')
group by t.c_eve_level,to_char(t.c_create_time,,"yyyymmddhh24")
order by to_char(t.c_create_time,,"yyyymmddhh24") desc
6.sql脚本中用到的函数,mysql和oracle也不同。
mysql中用ifnull,oracle用nvl或decode。
mysql中用left,oracle用substr。
mysql中用if,oracle可以用decode。
mysql中用dateformat,oracle可以用to_char。
mysql可以用日期和相同格式的字符串比较,而oracle只能用转成相同类型再比较。
7.在oracle中如果一个事务中执行的sql较多,就会报错。可以在配置文件id为sessionFactory中添加<prop key="hibernate.jdbc.batch_size">50</prop>
mysql转oracle注意事项的更多相关文章
- SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)
原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MyS ...
- 《物联网框架ServerSuperIO教程》-19.设备驱动和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化。v3.6.4版本发布
19.设备驱动和OPC Client支持mysql.oracle.sqlite.sqlserver的持久化 19.1 概述 ServerSuperIO支持设备驱动和OPC Client采集的数 ...
- 【无私分享:ASP.NET CORE 项目实战(第十二章)】添加对SqlServer、MySql、Oracle的支持
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 增加对多数据库的支持,并不是意味着同时对多种数据库操作,当然,后面,我们会尝试同时对多种数据库操作,这可能需要多个上下文,暂且 ...
- MySQL、Oracle和SQL Server的分页查询语句
假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql.Oracle和SQL Server分页查询student表. 1.Mysql的分页查询: SELECT * FROM s ...
- MySql类似Oracle的dual虚拟表
在mysql里也存在和oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用. 你可千万注意了: select * f ...
- MySQL与Oracle的主要区别
Mysql与Oracle区别 1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. ...
- MySql和Oracle的日期转换到底有哪些不同?我们来比较一下
1.MySql和Oracle的日期转换 mysql中有2种日期格式DATE和TIME,oracle只有一种日期格式DATE. oracle> select to_char(sysdate,'yy ...
- 数据库MySQL与Oracle的一些去O注意项
一.oracle递归查询语句start with ...connect by prior ① 给你一张表,表里面有主键id,以及该项的父节点parent_id,查询出该表中所有的父子关系节点树? Or ...
- Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver
此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源 ...
随机推荐
- was--创建概要文件(典型)
1.第一步 2 .创建 3.创建 4 .典型 5 下一步 6 下一步 7.下一步 8.输入用户和密码,下一步 9.下一步 10.下一步 11.下一步 12.下一步 13.下一步 14.创建 ...
- getDate() 各种时间格式
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE() ...
- android 设置跳转
android.provider.Settings. 1. ACTION_ACCESSIBILITY_SETTINGS : // 跳转系统的辅助功能界面 Intent ...
- python3.x 判断当前版本【简单版】
import sys,string Major_Version_Number = 0 #当前python的主版本 Minor_Version_Number = 0 #当前python的次版本 def ...
- CAD使用GetAllAppName读所有名称(com接口)
主要用到函数说明: MxDrawEntity::GetAllAppName 得到所有扩展数据名称,详细说明如下: 参数 说明 [out, retval] IMxDrawResbuf** ppRet 返 ...
- vue工厂化完整项目目录
- Spring Cloud练习1
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- sqlite3接口简要说明
本文介绍一下SQLite C/C++接口. 早期的SQLite C/C++接口只有5个接口函数, 很容易学习. 新版本的SQLite新增了很多功能, 目前大概有185个API接口.本文介绍一些核心的A ...
- CCF计算机职业资格认证考试 201809-2 买菜
以下内容过于幼稚,请大佬自觉绕道.. 题目描述: 时间限制:1.0s内存限制:256.0MB问题描述:问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁 ...
- 启发式合并 CodeForces - 600E
启发式合并最重要的思想就是指的是每次将小集合拷贝合并至大集合.考虑每个元素的合并开销.对于合并次数最多的那个元素来说,它每合并一次,所在集合的规模扩大两倍,最多只会合并 logN 次,因而对于所有元素 ...