Oracle
 sql >> Database >  >> RDS >> Oracle

Rails3 non può salvare 'ñ' in Oracle 11g

Devi distinguere due diverse impostazioni nls

  • quello esterno - definito dalla variabile di ambiente NLS_LANG nella tua applicazione. Questo determina la tua rappresentazione di stringa interna quando invii i dati alla libreria del client OCI.

  • quello interno. È il set di caratteri utilizzato da Oracle per archiviare i tuoi dati su disco.

Prova ad eseguire

select r.module, t.*
from v$sesssion_connection_info t
join v$session r on (r.sid = t.sid and t.serial# = r.serial#)
where r.sid = <your ruby connection SID>;

select * from nls_database_parameters;
select * from nls_instance_parameters;

Se mostra che stai usando qualcosa come US7ASCII o ISO8859P1, Oracle accetta il tuo carattere e lo converte nel set di caratteri di destinazione (rimuovendo un accento o sostituendo con '?').