So ändern Sie Zeichen setzen, die in Oracle 11g r2 Express edition
Habe ich ändern Sie den Zeichensatz AL32UTF8 zu WE8MSWIN1252 in einer Oracle 11g r2 Express-Instanz... ich habe versucht, verwenden Sie den Befehl:
ALTER DATABASE CHARACTER SET WE8MSWIN1252;
Aber es versäumt, zu sagen, dass MSWIN1252 ist nicht eine Obermenge von AL32UTF8. Dann fand ich einige Artikel sprechen CSSCAN, und das tool scheint nicht verfügbar zu sein in Oracle 11 Express.
http://www.oracle-base.com/articles/10g/CharacterSetMigration.php
Jemand eine Idee, wie das zu tun? Vielen Dank im Voraus
Bearbeiten
Die Klärung ein wenig: Das eigentliche Problem ist, dass ich versuche, importieren von Daten in eine Tabelle mit einer Spalte als VARCHAR(6 byte). Die Zeichenfolge, die das Problem verursacht ist 'eq.mês', es muss 6 bytes MSWIN1252 und 7 Byte UT8
- was ist Los mit UTF8? wenn Sie zusätzlichen Speicherplatz benötigen für einige Zeichen, erhöhen Sie einfach das Feld Länge.
- Ich möchte zu halten, Datenbank-DDL-identisch in beiden Fällen... ich denke über das ändern der Spalte in VARCHAR(6 ZEICHEN), aber ich weiß nicht, ob es irgendwelche Nachteile, die auf dieser
- das klingt nach einem vernünftigen plan, um mich (um so mehr, als die änderung der Zeichensätze)
- Wenn Sie Pflege, die viel über den Charakter legen, als Sie wahrscheinlich sollte nicht sein, mit Express-Edition. Express Edition ist gut für die Studenten und ein paar seltene Ausbildung und Produktion verwendet. Aber auf der Grundlage der OTN-Entwickler-Lizenz, die meisten Menschen, mit Express-Edition kann frei verwenden Sie die Enterprise-Edition statt. Oder im schlimmsten Fall zahlen Sie ein paar hundert Dollar für die Personal Edition.
- Check-Zeichensätze unterstützt durch oracle express edition auf docs.oracle.com/cd/E17781_01/install.112/e18803/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht.
Die Express Edition 11g ist nur bei Verwendung von UTF-8-Zeichensatz. Wenn Sie möchten, gehen Sie zurück zu der express edition 10g, es war ein Western europäischen version verwendet die Windows-1252-Zeichensatz. Im Gegensatz zu den anderen Editionen, Oracle, unterstützt nicht die volle Bandbreite der Zeichensätze in der Express Edition noch nicht unterstützt ändern Sie den Zeichensatz einer bestehenden XE-Datenbank.
Warum glauben Sie, müssen Sie ändern Sie den Datenbank-Zeichensatz? Andere als potenziell nehmen ein wenig mehr Speicherplatz zu unterstützen, die Zeichen in der oberen Hälfte der Windows-1252-Bereich, die in der Regel nicht besonders stark genutzt wird, gibt es nicht viele Nachteile, um eine UTF-8 Datenbank.
VARCHAR2(6 CHAR)
zuordnen 6 Zeichen anstelle von 6 bytes, oder legen Sie denNLS_LENGTH_SEMANTICS
zu "CHAR", so dass eineVARCHAR2(6)
reserviert 6-Zeichen anstelle von 6 bytes. Oder Sie können nur erhöhen Sie die Größe aller Zeichen Spalten, speichern nicht-ASCII-Daten.createDb -dbchar WE8MSWIN1252
Ich würde sagen, dass die beste option, wenn Sie gehen wollen, um ein Zeichen gesetzt, dass unterstützt nur eine Teilmenge der ursprünglichen Zeichen, dass Ihre beste option ist die Verwendung von exp und imp zurück (oder expdp und impdp).
Sind Sie sicher, dass keine einzige Tabelle enthält alle Zeichen, die nicht in der Codepage 1252 ?
VARCHAR2(6 BYTE)
und der Zeichensatz ist UTF8.Das problem der nur ausgeführt werden soll, die ALTER DATABASE-Befehl ist, dass das Data-Dictionary wurde nicht konvertiert werden, und es kann beschädigt werden.
Ich hatte das gleiche problem. In meinem Fall, sind wir mit einem Oracle 11g Express Edition (11.2.0.2.0) und wir brauchen wirklich, es läuft auf WE8MSWIN1252-Zeichensatz, aber ich kann nicht ändern der Zeichensatz für die installation (es wird immer die Installation mit AL32UTF8).
Mit einer Oracle-Client 11g installiert als Administrator und führen Sie nur die
csscan full=y
(überprüfen Sie diesen link https://oracle-base.com/articles/10g/character-set-migration) und wir bemerken, dass sind verlustbehaftet und Cabrio Probleme der Daten in unserer Datenbank. Aber die Probleme sind mit der MDSYS (Oracle Spatial) und APEX_040000 (Oracle Application Express) - schemas. So, wie wir brauchen diese Produkte, wir entfernen Sie diese (überprüfen Sie diesen link: http://fast-dba.blogspot.com.br/2014/04/how-to-remove-unwanted-components-from.html).Dann exportieren wir mit
expdp
des Benutzer-schemas und drop der Benutzer (Sie müssen neu erstellt werden am Ende des Prozesses).Ausführung csscan wieder mit
full=y capture=y
es Berichte, dass:The data dictionary can be safely migrated using the CSALTER script
. Wenn der Bericht nicht über diese, die csalter.plb-Skript wird nicht funktionieren, denn es gibt einige Bedingungen, die nicht erfüllt werden:In unserem Fall, diese Bedingungen waren zufrieden und wir konnten liefen die CSALTER Skript erfolgreich. Außerdem, das dieses script ausführt, die die ALTER DATABASE-Befehl, den Sie auszuführen versuchen, und es konvertiert die CLOB-Daten des Data Dictionary, das ist Cabrio.
Schließlich erstellen wir die Benutzer und tablespaces Anwendungs-und wir importieren den dump der user-Daten erfolgreich.