04. maj 2004 - 13:57Der er
1 kommentar og 1 løsning
Character Set spørgsmål
Hej,
Jeg sidder med to database i hver sit tegnsæt (et engelsk og et dansk). Det giver problemer med datoformatet MON-DD-YYYY, da oktober og maj staves forskelligt (OCT/OKT + MAY/MAJ).
-Kan man ændre tegnsæt efter oprettelse af databasen? -Findes der en funktion, der tager højde for ovenstående forskel (formatet skal være MON-DD-YYYY)? -Hvor finder jeg ud af hvilket specifikt tegnsæt baserne anvender?
Det er godt nok 3 spørgsmål, og selvfølgelig er der point for svar på hver enkelt spørgsmål.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Er det i visningen at du har problemer, for du kan jo altid selv lave formatteringen? Du kan runtime også bruge SET nls_lang, tror jeg det hedder. I basen er det jo ligemeget hvis du benytter date felter. En date er en date.
Man kan godt lave om på databasens tegnsæt; i hvert fald hvis det nye tegnsæt er en udvidelse af det gamle. Det kan du gøre med kommandoen ALTER DATABASE CHARACTER SET. Desuden kan der være problemer med data i CLOBs hvis du går fra et single byte tegnsæt til et multibyte tegnsæt.
Hvis du gerne vil vide hvilke tegnsæt din database bruger, kan du anvende forespørgslen SELECT * FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET%' i SQL*Plus. Det kan f.eks. give følgende resultat:
PARAMETER VALUE ------------------------------ ------------------------------ NLS_CHARACTERSET WE8ISO8859P1 NLS_NCHAR_CHARACTERSET AL16UTF16
Men jeg tror faktisk ikke dine problemer ligger i databasens tegnsæt, men snarere i formatteringen af dine date-variable/kolonner. Du kan enten ændre din NLS_LANG environment variabel (ligger i Registry, hvis du anvender Windows), f.eks. til DANISH_DENMARK.WEISO8859P1 (eller hvilket tegnsæt du nu ønsker).
Alternativt kan du ændre NLS_LANGUAGE for din session:
SELECT TO_CHAR(sysdate, 'MON-DD-YYYY') FROM dual;
TO_CHAR(SYS ----------- MAY-05-2004
ALTER SESSION SET nls_language=DANISH;
TO_CHAR(SYS ----------- MAJ-05-2004
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.