impdp导入时遇到报错
ORA-02374: conversion error loading table "UCR_PARAM"."SEC_OP_AUTHOR_ATTACH"
ORA-12899: value too large for column GRANT_TYPE (actual: 3, maximum: 1)
ORA-02372: data for row: GRANT_TYPE : 'O '
导入日志如下:
Master table "SYS"."SYS_IMPORT_FULL_02" successfully loaded/unloaded
Starting "SYS"."SYS_IMPORT_FULL_02": "/******** AS SYSDBA" parallel=5 cluster=N directory=AWR_EXTR dumpfile=crm_ucr_param_%U.dmp logfile=crm_ucr_param.log table_exists_action=r
eplace
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
ORA-02374: conversion error loading table "UCR_PARAM"."LZL_TAB_ATTACH"
ORA-12899: value too large for column GRANT_TYPE (actual: 3, maximum: 1)
ORA-02372: data for row: GRANT_TYPE : 'D '
ORA-02374: conversion error loading table "LZL"."LZL_TAB_ATTACH"
ORA-12899: value too large for column GRANT_TYPE (actual: 3, maximum: 1)
ORA-02372: data for row: GRANT_TYPE : 'D '
ORA-02374: conversion error loading table "LZL"."LZL_TAB_ATTACH"
ORA-12899: value too large for column GRANT_TYPE (actual: 3, maximum: 1)
ORA-02372: data for row: GRANT_TYPE : 'D '
使用export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK把导出端和导入端的环境变量重新加载下再导入
这次导出使用的dblink导出,中间库的字符集跟目标库和源库都不一样
SQL> select * from nls_database_parameters;
PARAMETER VALUE
--------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 11.2.0.4.0
本来使用的中间库dblink,不入库落地到中间库的服务器,在scp到目标端impdp的方式。
虽然没入库,但是中间库的字符集不一样还是导致了ORA-02374 ORA-12899 ORA-02372的错误
现在只有绕过中间库,或者在重建一个gbk的中间库。