In Oracle können Sie die Zeichensatzanweisung „ALTER DATABASE“ verwenden, um den Zeichensatz zu konvertieren. Das Syntaxformat ist „ALTER DATABASE [db_name] CHARACTER SET new_character_set;“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Oracle 11g-Version, Dell G3-Computer.
Oracle-Zeichensatzkonvertierung
Ein Zeichensatz ist ein Satz verschiedener numerischer Codes, die einem bestimmten Satz von Symbolen gemäß einem bestimmten Zeichenkodierungsschema zugewiesen werden.
Im täglichen Gebrauch müssen die Server- und Client-Zeichensätze konsistent sein.
--服务端 select * from nls_database_parameters; --客户端 SELECT USERENV('LANGUAGE') FROM DUAL;
Die am häufigsten verwendeten Methoden zur Anpassung des Datenbankzeichensatzes sind der ALTER-Befehl und der vollständige Export und Import.
Die erste ALTER DATABASE-Zeichensatzanweisung ist die schnellste Möglichkeit, Zeichensätze zu migrieren, kann jedoch nur unter besonderen Umständen verwendet werden.
Die Zeichensatzanweisung ALTER DATABASE führt keine Datenkonvertierung durch und kann daher nur dann verwendet werden, wenn der neue Zeichensatz eine strikte Obermenge des aktuellen Zeichensatzes ist.
--ALTER DATABASE字符集语句的语法如下,db_name为可选项: ALTER DATABASE [db_name] CHARACTER SET new_character_set;
Die zweite
Data-Pump-Methode (EXPDP/IMPDP) ist teurer, zeitaufwändiger und beansprucht viele Ressourcen. Außerdem müssen die Daten während der Migration gescannt werden, um zu bestätigen, ob es dabei zu Datenkürzungen und Zeichen kommt Migrationssatz-Konvertierungsfehler.
Die Migration des Datenbankzeichensatzes besteht aus zwei Phasen: Datenscan und Datenkonvertierung.
Bevor Sie den Datenbank-Zeichensatz ändern, verwenden Sie das Zeichensatz-Scan-Tool, um den Arbeitsaufwand zu ermitteln, der vor der Änderung des Datenbank-Zeichensatzes erforderlich ist.
Verwenden Sie Data Pump, um Skriptbeispiele zu importieren und zu exportieren. Das Skript muss auf dem Datenbankserver ausgeführt werden:
--查看管理员目录 确认导出文件位置路径 SELECT * FROM dba_directories; --expdp导出 带有条件 expdp 用户/密码@服务名 directory=DATA_PUMP_DIR dumpfile=数据文件文件名.dmp logfile=日志文件文件名.log tables=导出表名 query='" where lsh in (select lsh from table_1 where code !='1' and flag='1')"' CONTENT选项可选导出结构或数据 导出格式默认为.dmp--impdp导入 导入时重命名 存在表则增加数据 主键重复数据忽略 导入时也可以限定导入时所属表空间 impdp 用户/密码@服务名 directory=DATA_PUMP_DIR dumpfile=数据文件文件名.dmp REMAP_TABLE =导出用户名.导出表名:导入表名 TABLE_EXISTS_ACTION=append data_options=skip_constraint_errors
Empfohlenes Tutorial: „Oracle Tutorial“
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie einen Zeichensatz in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!