När du säger att du kör på servern menar du genom SQL*Plus?
Det första du bör kontrollera är vilket faktiska tecken som lagras - använd DUMP-funktionen för att kontrollera detta:
Oracle Dump-funktion
Detta kommer att berätta vad som faktiskt lagras. Om kedjan mellan din klientapp och Oracle-servern inte är lämplig kan du få teckenuppsättningskonvertering.
Förutsatt att rätt tecken sparas, vad du sedan ser på servern / sqlplus är teckenkonvertering som visas. d.v.s. Oracle "servar" karaktären korrekt, men skärmen hanterar den inte som du förväntar dig. För att fixa detta måste du ställa in miljövariabeln NLS_LANG till rätt teckenuppsättning.
t.ex. i ett nyligen projekt är standard:
set NLS_LANG=AMERICAN_AMERICA.US7ASCII
fråga sedan några data gav:
NAME
-----------------------------------
MS ELLIE MARTALL
Men:
set NLS_LANG=AMERICAN_AMERICA.US8PC437
Att sedan köra frågan gav:
NAME
-----------------------------------
MS ÉLLIE MARTALL
Och även:
set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
gav:
NAME
-----------------------------------
MS ╔LLIE MARTALL
Det viktigaste här är att den faktiska informationen är densamma, det är sättet som data presenteras på din skärm som skiljer sig, och det beteendet kan kontrolleras av NLS_LANG.