Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Rails3 kann 'ñ' nicht in Oracle 11g speichern

Sie müssen zwei verschiedene nls-Einstellungen unterscheiden

  • die externe - definiert durch die Umgebungsvariable NLS_LANG in Ihrer Anwendung. Dies bestimmt Ihre interne Zeichenfolgendarstellung, wenn Sie Daten an die OCI-Client-Bibliothek senden.

  • die innere. Es ist der Zeichensatz, der von Oracle verwendet wird, um Ihre Daten auf der Festplatte zu speichern.

Versuchen Sie auszuführen

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;

Wenn es zeigt, dass Sie etwas wie US7ASCII oder ISO8859P1 verwenden, akzeptiert Oracle Ihr Zeichen und konvertiert es in den Zielzeichensatz (entweder durch Entfernen eines Akzents oder durch Ersetzen durch '?').