Schema-Umstellung auf UTF8

Eine Schwierigkeit bei der Umstellung einer Datenbank von 1Byte-Zeichensätzen (Bsp.: we8iso8859p15) auf einen multibyte Zeichensatz (Bsp: UTF8) ergibt sich aus der Codierung von Zeichenketten-Feldern (char / varchar2).
Sind diese als char(1) bzw. varchar2(100) definiert, führt die Änderung des Zeichensatzes dazu, dass bisherige Feldinhalte nicht mehr "reinpassen" -> Fehler:
ORA-01401: inserted value too large for column
Eine mögliche Lösung:
Mit der Änderung der Tabelledefinition
von char(1) auf char(1 char) bzw.
von varchar2(100) auf varchar2(100 char)
kann dieses Problem umgangen werden.

Bsp:
1) Erstellung eines Schema-Scriptes
2) Änderung aller char- und varchar2-Spalten in char-Definition
3) Erstellen des so geänderten Schemas in Multibyte-Zieldatenbank
4) Export des Schema aus alter Datenbank
5) Import in Zieldatenbank mit Parameter ignore=Y (um Fehler, aufgrund der bereits angelegten Datenbankobjekte zu übergehen)

Siehe auch:
Metalink Note:227332.1

Kommentare

Beliebte Posts aus diesem Blog

PGA unter Oracle 11g

trunc(sysdate) - nette Spiele mit dem Datum

Datapump - Verzeichnis erstellen