最近在折腾Oracle(已经距上一次玩Oracle已经有快一年了...),之前的框架里只完成了对Mysql的驱动,没有涉及Oracle的东西。有一项目之前基于MySQL实现了一个版本,我还以为换到Oracle只要改改表结构啥的,就可以直接跑。唉,我自恋病又犯了。。。。。。坑的差点起不来~
以下我列一下MySQL字段里的坑:
1. datetime、date、time、timestamp类型的字段别用。
理由:Oracle里只有一个date类型的字段,然后它里面只要是涉及到date类型字段的操作(包括查询),都需要在SQL用一个
to_date(value, format)
的函数才能成功运行,要不然,查询的结果会是这样:
5/1/2015 10:09:09
或是插入不能成功。
解决方案:我是已经全整成Integer了,然后在程序里来进行数值->时间的转换,如
Datetime.datetimeToTimestamp("2014-05-01 23:22:20"); //从时间转到Timestamp数值
2. text字段类型需要注意。
理由:Oracle里没有text,Mysql里的text都会转成clob,但是这种数据格式不能用
rs.getString(loc);
这样的方法得取得值,需要用:
java.sql.Clob clob = rs.getClob("CLOBATTR");
Reader inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
inStream.read(c);
//data是读出并需要返回的数据,类型是String
data = new String(c);
inStream.close();
这样的代码才能读取得到。
目前是这些,坑还在继续中....
评论(3)
暂无评论!