I contributed a patch (with state wish) to the JIRA: https://issues.apache.org/jira/browse/OFBIZ-1001
I also added the other solutions mentioned in this thread... Michael jacques.le.roux wrote: > > Michael, > > Would you be interested by contributing a patch for this ? It does not > mean that it will be commited but at least the idea will be there, > opened to everybody... > > Jacques > > ----- Message d'origine ----- > De : "Michael Imhof" <[EMAIL PROTECTED]> > À : <[email protected]> > Envoyé : mardi 15 mai 2007 10:05 > Objet : Re: Problems with Oracle Database > > >> >> Hi Jacopo, >> I saw this note before, but I don't want to install a trigger on the > client >> database. I would like >> to fix the cause and not the problem!! >> >> I implemented a solution based on the design hibernate is using. In >> hibernate you have to define >> in a xml file wich dialect you're using. We don't have this > definition, but >> I'm using the drivername >> declared in the entityengine.xml to find the dialect to use. >> >> In GenericDAO I read the corresponding dialect instance and every > value is >> passed through this dialect >> instance (every dialect implements a method "toSqlString(Object > value)"). >> The where string values are build in the SqlJdbcUtil class, so that's > the >> point where I finally use my >> dialect class. >> If you look at SqlJdbcUtil.addValueSingle(..): >> buffer.append('\'').append(value).append('\''); >> is now: >> Object sqlValue = value; >> if (dialect != null) { >> sqlValue = dialect.toSqlString(value); >> } >> buffer.append(sqlValue); >> The instance dialect is passed as a parameter to the method. At the > moment I >> only implemented a >> OracleDialect class. All the other drivers are using the default > dialect >> wich is returning: >> return '\'' +value '\''; >> >> Seems to work fine... >> Michael >> >> >> Jacopo Cappellato wrote: >> > >> > Michael, >> > >> > have a look at these notes: >> > >> > http://docs.ofbiz.org/x/gAI >> > >> > let me know if they help you and if you have additional suggestions > for >> > OFBiz&Oracle >> > >> > Jacopo >> > >> > Michael Imhof wrote: >> >> We developed our OfBiz application on a mysql database and all > works >> >> fine. >> >> Deploying the application on the client server with Oracle database > I got >> >> exceptions with >> >> the sandbox: >> >> "ORA-01861: literal does not match format string" >> >> >> >> This is a problem with the date conversion. >> >> On MySql, the following SQL Statement is used >> >> SELECT .... WHERE RUN_TIME <= '2007-05-15 07:45:10.875' > AND .... >> >> Using an Oracle database, this statement is wrong and generates the >> >> ORA-01861 error. >> >> The statement should look like this: >> >> SELECT .... WHERE RUN_TIME <= TO_DATE('2007-05-15 > 07:45:10', >> >> 'YYYY-MM-DD HH:MI:SS') AND .... >> >> >> >> It works fine if the query is generated with the PreparedStatement > of the >> >> driver. >> >> But why the hell is this not always the case??? >> >> >> >> The call of >> >> delegator.storeByCondition("JobSandbox", updateFields, >> >> mainCondition); >> >> is creating a where statement BY HAND!!! (And of course this > statement is >> >> not generic and does not >> >> work with a oracle database). >> >> >> >> Michael >> >> >> >> PS: Probably I will fix this in my ofbiz version, but that will be > a big >> >> redesign (I don't think I can create a patch >> >> out of this. It's a redesign!). >> > >> > >> > >> > >> >> -- >> View this message in context: > http://www.nabble.com/Problems-with-Oracle-Database-tf3756432.html#a10618443 >> Sent from the OFBiz - User mailing list archive at Nabble.com. > > > -- View this message in context: http://www.nabble.com/Problems-with-Oracle-Database-tf3756432.html#a10713771 Sent from the OFBiz - User mailing list archive at Nabble.com.
