2010-09-03 4 views
0

J'ai une application WebObjects, Openbase db, et je reçois une exception jamais vue lors d'une requête de lignes brutes (non ORM) lors d'une opération par lots. Il semble que l'adaptateur jdbc lance une valeur de date dans la base de données et est incapable de forcer les données brutes dans le type approprié. Il tue littéralement l'application et met fin au processus d'exportation. Voici les deux principales lignes pertinentes de la trace:IllegalArgumentException avec la valeur Date dans jdbc; Openbase sql

java.lang.IllegalArgumentException 
at java.sql.Date.valueOf(Date.java:138) 
at com.openbase.jdbc.f.getDate(Unknown Source) 

J'ai essayé de changer le type de colonne de la date, datetime à l'horodatage, et l'ajustement du modèle eo en conséquence, mais l'exception reste. Je me demande ce que je peux faire pour résoudre cela, en particulier si quelqu'un connaît un mécanisme de requête plus sophistiqué que je peux utiliser pour identifier les lignes éventuellement mauvaises. La documentation d'Openbase est assez éparse, et j'espère que quelqu'un sait comment utiliser les patterns pour identifier les mauvaises valeurs possibles en utilisant sql openbase. Ou, d'autres moyens d'identifier le problème. Merci.

+0

Je viens de trouver, par douloureux petit ensemble d'interrogation, une charge de lignes qui ont un format de date comme '-001-12-31 12:00:00 -0500' J'ai trouvé cela très suspect, alors j'ai fait un test simple et il n'y avait pas d'erreurs; openbase et l'adaptateur jdbc ne se sont pas plaints de ces lignes du tout. De plus, l'utilisation de "-001%" par les docs ne fonctionne pas. Peut-être que ne fonctionne pas avec les horodatages dans OpenBase. Assez perplexe ... – wkhatch

Répondre

0

Il s'avère que le problème était dû à une incompatibilité de version entre la version Openbase et la version Java. Malheureusement, je n'avais pas d'autre choix que de réécrire la routine de vidage pour utiliser la fonction bulk save openbase, puis analyser le csv résultant. Fait intéressant, les mêmes dates qui causaient des problèmes imprimés très bien, ce qui a permis d'économiser beaucoup plus de lignes. Résumé: coller avec les db's open source; À moins que vous ne soyez haut de gamme, les solutions telles qu'Openbase ne présentent plus aucun avantage.

Questions connexes