Import Oracle:从WE8ISO8859P1到AL32UTF8的转换
我正在尝试整合一些数据库,但我在字符集方面遇到了一些问题 我的数据库如下所示: 源数据库Import Oracle:从WE8ISO8859P1到AL32UTF8的转换,import,export,data-conversion,oracle11gr2,character-set,Import,Export,Data Conversion,Oracle11gr2,Character Set,我正在尝试整合一些数据库,但我在字符集方面遇到了一些问题 我的数据库如下所示: 源数据库 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
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
目标数据库
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
------ ------------- ------------- -------------
那么,有没有办法在导入之前找出目的地中VARCHAR2的值?我可以改变桌子的结构。在我们的示例中,我可以修改我的表,并将列的大小从400修改为403
如果您需要更多信息或其他任何信息,请留下评论
提前谢谢 csscan工具会告诉您转换后的行车记录有多大,您可以用它来更改字段的大小。在下面的示例中,您需要将SAMPLE_列的大小从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
希望这有帮助。我的问题仍然没有解决方案。有什么想法吗?提前谢谢!