martes, mayo 03, 2011

Pasar fechas en adaptador JDBC

Cuando se utiliza un adaptador JDBC para volcar datos directamente en una base de datos, existen ciertos tipos de datos que hay que tratarlos de manera específica. Uno de estos tipos es el de fecha. Por defecto, al pasar un campo de tipo xsd:dateTime, p.ej., en el proceso de conversión se pasa el contenido de este campo como si fuera una string y la base de datos devuelve un error del tipo "java.sql.SQLException: literal does not match format string". Para que no se pase el contenido a literal, es necesario definir el campo como "xsd:string" y añadirle el parámetro "hasQuot" con el valor por defecto "No".


De este modo indicaremos que no se pase como literal (entre comillas dobles).

El código del proxy de envío sería el siguiente (para campos de TIMESTAMP, los de tipo DATE utilizan otra función):



Algunos errores relacionados (java.sql.SQLException)::
  • date format not recognized: Formato no válido (distinto de YYYY-MM-DD HH24:MI:SS)
  • a non-numeric character was found where a numeric was expected: La expresión se está pasando como un string. No se está pasando el parámetro hasQuot con el valor 'No'.
  • literal does not match format string: El formato pasado no encaja con el patrón asociado (p.ej.: 2011-05-03-08:40:55 -> YYYY-MM-DD HH24:MI:SS)

Enlaces de referencia:

No hay comentarios: