Zmień język (stronę kodową) bazy danych Oracle


Mamy dwie bazy danych Oracle, które są skonfigurowane do:
SQL> SELECT USERENV ('language') FROM DUAL;USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

Pozostałe instancje są skonfigurowane w następujący sposób:
SQL> SELECT USERENV ('language') FROM DUAL;USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1

Stwarza to różnego rodzaju problemy podczas przesyłania danych z jednej bazy danych do drugiej. Czy można przekonwertować dwie „niestandardowe” bazy danych, aby pasowały do ​​innych? Jeśli tak to jak?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

cóż, pierwszym zestawem znaków jest Unicode, który w zasadzie obsługuje wszystkie języki. Drugi („P1”) to zachodnioeuropejski ASCII, który obsługuje język angielski i kilka dodatkowych znaków zachodnich.
Więc,
  • w jakich językach są twoje dane jakie języki będziesz potrzebować obsługiwać
  • Czy chcesz przekonwertować bazę danych UNICODE na bazę danych ASCII lub odwrotnie

Konwersję z WE8 ... P1 na Unicode można łatwo wykonać poprzez eksportowanie (ustawienie NLS_LANG na WE8..P1), tworzenie nowej, pustej bazy danych i importowanie (ponownie, ustawiając NLS_LANG na WE8..P1). Jednak konwersja do Unicode ma pewne skutki uboczne, szczególnie w odniesieniu do ograniczeń dowolnych kolumn varchar2 - jeśli było to varchar2 (20), zwykle oznacza to 20 bajtów, więc przy użyciu Unicode 20 bajtów może zawierać mniej znaków (innych niż angielskie). ... Aby więc uniknąć obcinania danych, może być konieczne zwiększenie niektórych kolumn ... Wszystkie szczegóły tutaj:
http://download.oracle.com/doc ... g.htm
http://download.oracle.com/doc ... g.htm
Konwersja z UTF8 do WE8..P1 jest ponownie eksportowana z NLS_LANG = WE8 ... P1 (teraz utracisz wszystkie znaki, które nie są wyświetlane w ASCII P1, takie jak arabski, chiński itp.), Tworząc pustą bazę danych We8 .. P1 i import danych z NLS_LANG = WE8ISO8859P1.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się