impdp遇到ORA-02374 ORA-12899 ORA-02372
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的中間庫。