mysql oracle level_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中添加50

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值