2016-05-14 13 views
0

Ich denke, das ist das Betriebssystem, weil Anwendungen in Java und PHP das gleiche Problem haben. ich dieses Verfahren hergestellt:Wie korrigieren Sie die Zeichen in Oracle für Windows?

An erster Stelle:

ich die NLS_CHARACTERSET mit den nächsten Zeilen geändert:

conn /as sysdba 
shutdown immediate; 
startup mount; 
ALTER SYSTEM ENABLE RESTRIcted session; 
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
alter database open; 
UPDATE PROPS$ SET VALUE$ = 'AL32UTF8' WHERE NAME = 'WE8MSWIN1252'; 
commit; 
shutdown immediate; 
startup; 

Nach

SQL> SELECT * from NLS_DATABASE_PARAMETERS WHERE parameter 
IN ('NLS_LANGUAGE', 'NLS_TERRITORY', 'NLS_CHARACTERSET'); 

PARAMETER VALUE 
—————————— —————————————- 
NLS_LANGUAGE AMERICAN 
NLS_TERRITORY AMERICA 
NLS_CHARACTERSET AL32UTF8 

DER AUSGANG ARBEITSPLATZ WAR Form: AMERIKANISCH, AMERIKA, AL32UTF8 bzw.

1-Lernprogramm:

Bestimmen Sie den NLS_LANG-Wert. In der Data Warehouse-Datenbank, führen Sie den Befehl

SELECT * FROM V$NLS_PARAMETERS 

notieren Sie den NLS_LANG Wert Machen, die [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET] im Format ist. Zum Beispiel: American_America.UTF8 Für Windows: Navigieren Sie zu Systemsteuerung> System und klicken Sie auf die Registerkarte Erweitert. Klicken Sie auf Umgebungsvariablen. Klicken Sie im Abschnitt Systemvariablen auf Neu. Geben Sie im Feld Variablenname NLS_LANG ein. Geben Sie im Feld Variablenwert den NLS_LANG-Wert ein, der in Schritt 1 zurückgegeben wurde. Das Format für den NLS_LANG-Wert sollte [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET] lauten. Zum Beispiel: American_America.UTF8.

2-Tutorial: ich in einem REGEDIT in HKEY_LOCAL_MACHINE eingetragen> sofwtare> Oracle> KEY_XE und ich die NSLANG Datei geändert, mit dem Wert_ AMERICAN_AMERICA.AL32UTF8.

Ich reboot meinen Laptop und ich habe immer noch das gleiche Problem. Es ist nur so, dass auf einmal alle Charaktere in andere Charaktere verwandelt wurden.

+1

Haben Sie eine Sicherung Ihrer Datenbank, bevor Sie es beschädigt haben? Das Data-Dictionary direkt zu aktualisieren ist höchst nicht unterstützt und hat mit ziemlicher Sicherheit Nebenwirkungen, die Sie nicht verstehen. Schritt 1 besteht darin, die Datenbanksicherung wiederherzustellen, bevor Sie diese Änderung vorgenommen haben. –

+0

Kein Problem. Ich kann deinstallieren, wenn du willst –

Antwort

0

Wie von Justin Cave vorgeschlagen, sollten Sie zuerst Ihre Datenbank wiederherstellen (oder entsorgen). Auf der anderen Seite, vielleicht hatten Sie Glück, denn UPDATE PROPS$ SET ... WHERE NAME = 'WE8MSWIN1252'; sollte 0 Zeilen aktualisieren, da es keinen Parameter mit dem Namen WE8MSWIN1252 gibt.

Normalerweise sollte es ausreichend sein, NLS_LANG entsprechend dem Charakter Ihrer Anwendung zu setzen, in diesem Fall Ihre Java und/oder PHP Einstellungen. Sie können es entweder als Umgebungsvariable oder in der Registrierung ausführen. Ich weiß jedoch nicht, ob Java und PHP die Registrierungseinstellungen lesen oder ob sie sich nur auf Umgebungsvariablen verlassen.

Überprüfen Sie auch den Registrierungsschlüssel HKEY_LOCAL_MACHINE>SOFWTARE>Wow6432Node>Oracle>KEY_XE -> TNS_ADMIN, falls Sie den 32-Bit Oracle-Client installiert haben.

Sehen Sie diese Antwort mehr Details zu erhalten: OdbcConnection returning Chinese Characters as "?"

+0

Danke. Ich entdeckte eine Windows-Konsole (SQL Command Line) hat ein Problem mit der Eingabe von Zeichen. Es war das Problem, weil meine gesamte Konfiguration mit AL32UTF8 und Ihrer Wahl WE8MSWIN1252 auch richtig ist. Linux wenn der Eingabe-Typ aber Windows nicht oder ja? –

0

ich über NLS_LANG bei OTN (Oracle Technology Network) geschrieben, hier ein Link ist. https://community.oracle.com/thread/3907535?start=0&tstart=0 Sie können es nützlich finden.

Rote Flagge: Warum versuchen Sie, Ihre lokale NLS_LANG-Zeichensatzkomponente für Ihren eigenen lokalen Computer in den Zeichensatz zu ändern, der von der Datenbank verwendet wird?Wenn Sie sich fragen, was zum Teufel diese Mathmuy mit dieser Frage bedeuten? - Bitte lesen Sie die Notizen, die ich verlinkt, oder wenn Sie die Zeit und die Neigung haben, das "Original" - die NLS_LANG FAQ http://www.oracle.com/technetwork/products/globalization/nls-lang-099431.html

Verwandte Themen