在opentanps转oracle的时候发现出现了无效的月份错误“ORA-01843: not a valid month while using oracle database”
网上找了很多解决方案大至都是在数据库加触发器官方的解决方法也是加触发器,
create or replace TRIGGER ON_CONNECT AFTER LOGON ON DATABASE
DECLARE
guser varchar2(30);
begin
SELECT sys_context('USERENV','SESSION_USER') into guser FROM dual;
if (guser='ofbiz' or guser='OFBIZ') THEN
EXECUTE IMMEDIATE 'alter session set nls_timestamp_format = ''YYYY-MM-DD HH24:MI:SS.FF''';
end if;
end;
这方法试了N次都不起作用。这种方法加触发器考虑到对性能的影响。最后还是决定找底层出错的代码段进行修改
“opentaps-1.4/framework/entity/src/org/ofbiz/entity/jdbc”的 SqlJdbcUtil.java文件
找到方法:
public static void addValueSingle(StringBuilder buffer, ModelField