单位系统需要从mysql迁移至oracle,好在使用了hibernate,系统迁移工作简单了许多。
但是在DAO层和Jasper报表统计中有些类中使用了原生SQL,需要对这部分单独进行处理,整理了一下系统中使用的mysql函数,对oracle中实现相同功能函数进行对比:
mysql Oracle
有区别的函数
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
locate(tarStr,srcField) --> instr(srcField,tarStr)
position(tarStr,srcField) --> instr(srcField,tarStr)
ifnull(expr1,expr2) --> nvl(expr1,expr2)
cast(field) as decimal(20,2) --> rount(field,2)
replace(field,fromStr,toStr) --> replace(field,fromStr,toStr)
now() --> sysdate value
concat(field1,field2,field3) --> concat(field1,field2) 只支持两个参数
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
locate(tarStr,srcField) --> instr(srcField,tarStr)
position(tarStr,srcField) --> instr(srcField,tarStr)
ifnull(expr1,expr2) --> nvl(expr1,expr2)
cast(field) as decimal(20,2) --> rount(field,2)
replace(field,fromStr,toStr) --> replace(field,fromStr,toStr)
now() --> sysdate value
concat(field1,field2,field3) --> concat(field1,field2) 只支持两个参数
无区别的函数
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SUM,AVG,COUNT,SUBSTR
转载于:https://blog.51cto.com/jeoff/348150