首页 > 解决方案 > 将 Oracle 12c 数据库的 NLS_CHARACTERSET 从 US7ASCII 更改为 AL32UTF8 的方法

问题描述

作为从 Oracle 11g 到 Oracle 12c 的数据库迁移的一部分,我们必须更改 NLS_CHARACTERSET 参数。目前 Oracle 11g 字符集为:WE8ISO8859P1,Oracle 12c 字符集为 US7ASCII。我们希望有 Oracle 12c NLS_CHARACTERSET -AL32UTF8。

我们的方法: 1)首先将12c的字符集更改为与11g相同,进行导入。此导入不会导致数据丢失,因为源和目标都具有相同的字符集。2)然后我们将 Charset 更改为 AL32UTF8,运行 CSSCAN,分析由于截断等各种因素导致的数据丢失。 3)最后运行 CSALTER 并处理列宽,截断等。

我在这里遇到的问题是: 1. 12c 不支持 CSSCAN,什么选项会有所帮助。DMU(Unicode 的数据库迁移实用程序)可以帮助我们吗?2. 12c 也不支持 CSALTER,那么有什么替代方案呢?3. AL32UTF8 是 WE8ISO8859P1 的超集,但是当我们针对 AL32UTF8 在 11g 上运行 CSSCAN 时,它给我们带来了一些数据丢失。为什么?4.还有比这更好的方法吗?请建议!提前致谢!

标签: databaseoraclemigrationcharacterdatabase-migration

解决方案


推荐阅读