甲骨文:从 WE8ISO8859P1 到 AL32UTF8 的转换
Oracle: Conversion from WE8ISO8859P1 to AL32UTF8
我正在尝试整合一些数据库,但我在使用字符集时遇到了一些问题。
我的数据库是这样的:
源数据库
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
NLS_CHARACTERSET WE8ISO8859P1
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_LENGTH_SEMANTICS BYTE
目标数据库
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_LENGTH_SEMANTICS BYTE
我导出了一个模式,但是当我在新数据库中导入时,出现了很多错误,例如:
ORA-02374: conversion error loading table owner.table_name
ORA-12899: value too large for column col_name (actual: 403, maximum: 400)
我有 运行 csscan 实用程序。这是结果:
TABLE Convertible Truncation Lossy
------ ------------- ------------- ------------
1 0 18 24
2 2,248 120 19,854
3 2,155 120 19,551
4 5,431 294 41,531
5 5,925 114 18,352
6 129 4 5,095
7 109 4 5,017
8 2,149 151 5,219
------ ------------- ------------- -------------
那么,有什么方法可以在导入前找出destination中VARCHAR2的值吗?我可以改变 table 的结构。在我们的示例中,我可以更改 table 并将列的大小从 400 修改为 403。
如果您需要更多信息或其他任何内容,请发表评论。
提前致谢!
csscan 工具会告诉您转换后的 Truction 记录有多大,您可以使用它来更改字段的大小。在以下示例中,您需要将 SAMPLE_COLUMN 的大小从 VARCHAR(40) 更改为 VARCHAR(43) 以涵盖正在转换的所有内容:
csscan .err 示例输出:
User : SAMPLE_USER
Table : SAMPLE_TABLE
Column: SAMPLE_COLUMN
Type : VARCHAR2(40)
Number of Exceptions : 5
Max Post Conversion Data Size: 43
希望对您有所帮助。
我正在尝试整合一些数据库,但我在使用字符集时遇到了一些问题。
我的数据库是这样的:
源数据库
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
NLS_CHARACTERSET WE8ISO8859P1
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_LENGTH_SEMANTICS BYTE
目标数据库
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_LENGTH_SEMANTICS BYTE
我导出了一个模式,但是当我在新数据库中导入时,出现了很多错误,例如:
ORA-02374: conversion error loading table owner.table_name
ORA-12899: value too large for column col_name (actual: 403, maximum: 400)
我有 运行 csscan 实用程序。这是结果:
TABLE Convertible Truncation Lossy
------ ------------- ------------- ------------
1 0 18 24
2 2,248 120 19,854
3 2,155 120 19,551
4 5,431 294 41,531
5 5,925 114 18,352
6 129 4 5,095
7 109 4 5,017
8 2,149 151 5,219
------ ------------- ------------- -------------
那么,有什么方法可以在导入前找出destination中VARCHAR2的值吗?我可以改变 table 的结构。在我们的示例中,我可以更改 table 并将列的大小从 400 修改为 403。
如果您需要更多信息或其他任何内容,请发表评论。
提前致谢!
csscan 工具会告诉您转换后的 Truction 记录有多大,您可以使用它来更改字段的大小。在以下示例中,您需要将 SAMPLE_COLUMN 的大小从 VARCHAR(40) 更改为 VARCHAR(43) 以涵盖正在转换的所有内容:
csscan .err 示例输出:
User : SAMPLE_USER
Table : SAMPLE_TABLE
Column: SAMPLE_COLUMN
Type : VARCHAR2(40)
Number of Exceptions : 5
Max Post Conversion Data Size: 43
希望对您有所帮助。