Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2011, 05:55
Avatar de titocba
titocba
 
Fecha de Ingreso: agosto-2008
Ubicación: Cordoba
Mensajes: 256
Antigüedad: 15 años, 8 meses
Puntos: 4
Problema con caracteres especiales

Estimados.
Acudo a los sabios del tema para ayudarme a ver por donde se le puede dar solucion al siguiente problema.
Resulta lo siguiente, cuando realizo un insert de este tipo en mi base de datos

insert into test(camboTest) values('áéí')

me inserta en la base de datos ??? un signo por cada caracter que contenga un acento o sea una ñ

Ahora bien este problema por lo que tengo entendido es por el idioma de la base de datos, yo a este problema lo solucionaba creando una variable de entorno en la maquina cliente y el problema se me solucionaba.
Ahora el problema es que la maquina cliente no puede ser tocada y necesito darle solucion al problema, eh probado lo siguiente haciendo un procedure a modo test de cambiar el idioma en tiempo de ejecucion, consigo cambiar el idioma pero el problema de los caracteres persiste.



DECLARE
idioma VARCHAR2 (40);
BEGIN
SELECT VALUE
INTO idioma
FROM nls_session_parameters
WHERE parameter = 'NLS_LANGUAGE';

INSERT INTO test
(campoTest
)
VALUES (idioma || 'áéíóúñ'
);

COMMIT;

EXECUTE IMMEDIATE 'ALTER SESSION set NLS_LANGUAGE = "SPANISH" ';

EXECUTE IMMEDIATE 'ALTER SESSION set NLS_TERRITORY = "SPAIN"';

EXECUTE IMMEDIATE 'ALTER SESSION set NLS_CURRENCY = "¿" ';

EXECUTE IMMEDIATE 'ALTER SESSION set NLS_ISO_CURRENCY = "SPAIN" ';

EXECUTE IMMEDIATE 'ALTER SESSION set NLS_DATE_LANGUAGE = "SPANISH" ';

EXECUTE IMMEDIATE 'ALTER SESSION set NLS_SORT = "SPANISH"';

SELECT VALUE
INTO lengua
FROM nls_session_parameters
WHERE parameter = 'NLS_LANGUAGE';

INSERT INTO test
(campoTest
)
VALUES (idioma || 'áéíóúñ '
);

COMMIT;
END prueba1;
[/CODE]

Si bien me cambia el idioma en tiempo de ejecucion el problema al insertar persiste

AMERICAN Lengua Original: ??????
SPANISH Lengua Alterada: ??????



Alguna alternativa de solucion, ya sea desde un procedure o desde Java, saben como atacar este problema.

Gracias desde ya