迁移到Postgresql 数据库平台两个问题
Java开发Postgresql 数据库兼容应用的问题,与Oracle有一些不同:
Java类型映射数据库类型的不同,Oracle jdbc驱动程序处理Java String类型可正常映射到数据库的Numberic(Integer),而Postgres则会出错。
另外,则是使用hibernate时经常的錯誤: operator不存在:character varying = bytea问题,不要被这个描述误导了,并不是sql语句中character varying = bytea类型的比较,而是当使用hibernate使用参数绑定,而参数的值为null时,hibernate或者Postgresql驱动将这个参数映射为varbinary类型,Postgresql将varbinary认为为bytea类型:
2011-06-27 10:50:26,312 - WARN http-80-Processor23 [JDBCExceptionReporter] - SQL Error: 0, SQLState: 42883
2011-06-27 10:50:26,328 - ERROR http-80-Processor23 [JDBCExceptionReporter] - 錯誤: operator不存在:character varying = bytea
建议:沒有符合指定之名稱和參數型別的運算子。您可能需要加入明確型別轉換。
位置:1821