从Oracle迁移到H2数据库

   
    我接触的项目大多是采用oracle数据库开发的,性能和功能都没的说,不过就是太重量级了。如果是做单独的项目,问题不大,如果是做产品软件,像一般小应用、工具等,对独立发行部署有很大要求,再加上成本等方面考虑,采用一个轻量级数据库是很必要的。

    最近,用h2做了几个项目,不得不说:H2数据库是个好东西!

数据库要从oracle转到h2上来,一般是用plsql导成sql语句,然后在h2上执行。h2有oracle语法兼容连接模式,可以接受一些oracle的sql特殊语法,并且支持序列,有dual表,翻页语法都兼容,这样程序的改动量一下子变得最低。除去过程和函数等需要更改外,在执行数据插入sql时可能遇到to_date或to_char之类的函数,可以先为h2增加连个函数即可搞定:
drop alias if exists TO_DATE;
create alias TO_DATE as $$
java.util.Date toDate(String s,String pattern) throws Exception {
	pattern = pattern.replaceAll("mm","MM");
	pattern =  pattern.replaceAll("hh24","HH");
	pattern =  pattern.replaceAll("mi","mm");
    return new java.text.SimpleDateFormat(pattern).parse(s);
}
$$;

drop alias if exists TO_CHAR;
create alias TO_CHAR as $$
String toChar(BigDecimal x, String pattern) throws Exception {
    return new java.text.DecimalFormat(pattern).format(x);
}
$$;

猜你喜欢

转载自godlewis.iteye.com/blog/1931845