Java - ORA-01482: unsupported character set

 
Vista:

ORA-01482: unsupported character set

Publicado por Mariah (11 intervenciones) el 03/02/2012 01:14:15
Ok gente, he aquí un problema a ver si alguien sabe cómo resolverlo.

Tengo una aplicación en Java que usa webservices y ejb 2.0 y usa un driver JDBC y se conecta a través de un datasource.

Un cliente X en Java guarda en la base de datos (oracle) un archivo XML en un campo CLOB, ese archivo es guardado por el cliente con una codificación UTF8, se ha hecho un método en otro proyecto para extraer ese XML pues comparten la misma BD.

Mi base de datos tiene confirgurado en el NLS_CHARACTERSET = WE8ISO8859P1, según he leido, los CLOBS se rigen bajo ese parámetro NLS_CHARACTERSET para el encoding.

Si obtengo ese dato de la base como un String pues viene mal porque está codificado en UTF8, para mi buena o mala fortuna existe una función en Oracle que se llama CONVERT y me permite cambiar esa codificación (aunque antes tengo que hacer un replace para quitar el BOM del archivo porque no lo interpreta bien), y todo OK hasta ahí.

Si ejecuto la consulta en SQL PLUS o en SQL DEVELOPER jala perfectamente bien, sin embargo al pasar por el servidor de aplicaciones dice: java.sql.SQLException: ORA-01482: unsupported character set

Me habían comentado que es necesario decirle a la JVM qué tipo de languaje y encoding estoy usando, pero me comentan o he leído que solo es aplicable para OCI drivers y no para JDBC.

Ojala alguien pueda darme un poco de luz por aquí, he intentado varias cosas como por ejemplo leer el campo como UTF8 y obtenerlo con CLOB y cambiarle la codificación entre otros, pero nada, mi intensión no es la de cambiar el Driver de Conexión ni tampoco cambiar el NLS_CHARACTERSET de la base de datos porque eso implica hacer un cambio que podría impactar en otras aplicaciones ahora productivas.

Les agradezco.

Saludos!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder