日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle导入视图报错,exp/imp 报错处理(EXP-00003 / IMP-00019 / IMP-00058)

發布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle导入视图报错,exp/imp 报错处理(EXP-00003 / IMP-00019 / IMP-00058) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MOS 文章參考

OERR: EXP 3 "no storage definition found for segment(%lu, %lu)" (文檔 ID 21599.1)

EXP-00003 When Exporting From 9.2.0.5.0 Or Any Higher Release With A Pre-9.2.0.5.0 Export Client (文檔 ID 274076.1)

一、EXP 導出報錯(數據庫版本 11.2.0.4.0)

. . exporting table ? ? ?FANZC_ALL_DEV_CDMA_USER_M ? ? 184220 rows exported

EXP-00003: no storage definition found for segment(20, 12647)

. . exporting table ? ? ? ? ?SJZX_WH_FUKA_BX_010_D

. . exporting partition ? ? ? ? ? ? ? ? ? ?PART_201701 ? ? ? ? ?0 rows exported

. . exporting partition ? ? ? ? ? ? ? ? ? ?PART_201702 ? ? 279875 rows exported

. . exporting partition ? ? ? ? ? ? ? ? ? ?PART_201703 ? ? ? ? ?0 rows exported

. . exporting partition ? ? ? ? ? ? ? ? ? ?PART_201704 ? ? ? ? ?0 rows exported

. . exporting partition ? ? ? ? ? ? ? ? ? ?PART_201705 ? ? ? ? ?0 rows exported

查看源庫中表的行數,可以發現,所有行都已經被導出

根據 MOS 文章 21599.1,報錯中的?(%lu, %lu) 表示 (文件號 F,塊號 B) 查詢 dba_segments 確定 段 的名字,但是在數據庫中并沒有查到

select * from dba_segments where HEADER_FILE = F and HEADER_BLOCK = B;

根據 MOS 文章 274076.1 的解決方式: 1)$ORACLE_HOME/rdbms/admin/catexp.sql ?文件中,定義了?EXU9TNE 視圖的定義

REM

REM find out correct size of second extent using uet$

REM

CREATE OR REPLACE VIEW exu9tne (

tsno, fileno, blockno, length) AS

SELECT ?ts#, segfile#, segblock#, length

FROM ? ?sys.uet$

WHERE ? ext# = 1

/

GRANT SELECT ON sys.exu9tne TO PUBLIC;

REM

REM find out correct size of second extent using x$ktfbue (for bitmapped TS)

REM

CREATE OR REPLACE VIEW exu9tneb (

tsno, fileno, blockno, length) AS

SELECT ?ktfbuesegtsn, ktfbuesegfno, ktfbuesegbno, ktfbueblks

FROM ? ?sys.x$ktfbue

WHERE ? ktfbueextno = 1

/

GRANT SELECT ON sys.exu9tneb TO PUBLIC;

查詢 dba_views 進行驗證

SQL> select OWNER,VIEW_NAME,TEXT_LENGTH,TEXT from dba_views where view_name ='EXU9TNE';

OWNER ? ? ? ? ? ? ? ? ? ? ? ? ?VIEW_NAME ? ? ? ? ? ? ? ? ? ? ?TEXT_LENGTH TEXT

------------------------------ ------------------------------ ----------- -----------------------------------------------------

SYS ? ? ? ? ? ? ? ? ? ? ? ? ? ?EXU9TNE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 90 SELECT ?ts#, segfile#, segblock#, length

FROM ? ?sys.uet$

WHERE ? ext# = 1

2)使用 SYS 重建一下這個視圖

CREATE OR REPLACE VIEW exu9tne (

tsno, fileno, blockno, length) AS

SELECT ts#, segfile#, segblock#, length

FROM sys.uet$

WHERE ext# = 1

UNION ALL

SELECT * from sys.exu9tneb

/

3)重新執行導出 4)導出完成后,將視圖?EXU9TNE 還原

二、IMP 導入報錯 錯誤描述:在源庫(10.2.0.4.0)使用 exp 導出后,在新庫(11.2.0.4.0)使用 imp 進行導入,出現一些錯誤 源庫導出

exp 'rpt_hbtele/rpt_ods*147' FILE=/oratmp2/E_CHANNEL_DTBLCG_D.dmp TABLES=RPT_HBTELE.E_CHANNEL_DTBLCG_D direct=y recordlength=65535 log=/oratmp2/E_CHANNEL_DTBLCG_D_exp_table.log buffer=5400000 statistics=none

目標庫導入

imp 'rpt_hbtele/JfRpt_hbtele_#95!Cnob' FILE=/oratmp2/E_CHANNEL_DTBLCG_D.dmp TABLES=E_CHANNEL_DTBLCG_D ignore=y commit=y log=/oratmp2/E_CHANNEL_DTBLCG_D_imp_table.log buffer=5400000 statistics=none

錯誤一:ORA-12899

IMP-00019: row rejected due to ORACLE error 12899

IMP-00003: ORACLE error 12899 encountered

ORA-12899: value too large for column "RPT_HBTELE"."E_CHANNEL_DTBLCG_D"."SERVID" (actual: 21, maximum: 20)

Column : 171204ismp_prod0213143

Column : 13315911100

.......

Column : 20171204085313

Column :

Column :

Column :

Column :

Column :

Column :

Column : 135000000000000000851 ? ? ?該列的長度是 21 但是創建表時指定的數據類型是 varchar2(20)

Column :

Column : 1

.........

錯誤原因:源庫更改了?SERVID 的列寬,由?varchar2(20) 更改為?varchar2(40),但是目標庫的元數據沒有更新 解決方式:在目標庫修改列寬,與源庫保持一致;然后將失敗的表數據重新導入

alter table E_CHANNEL_DTBLCG_D modify SERVID varchar2(40);

錯誤二:ORA-00904

. . importing table ? ? "SJZX_WH_BXL_DINNER_030_D"

IMP-00058: ORACLE error 904 encountered

ORA-00904: "ONNETNEW_SN_199_2": invalid identifier

錯誤原因:源庫中,SJZX_WH_BXL_DINNER_030_D 表增加了幾個字段(隨著業務需要,某些表會增加字段)

SQL> desc RPT_HBTELE.SJZX_WH_BXL_DINNER_030_D;

Name ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Null? ? ?Type

----------------------------------------- -------- ----------------------------

....

....

NEW_109_2_DR_SN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

NEW_109_2_DY_SN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

TRANS_109_2_DR_SN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

TRANS_109_2_DY_SN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

ONNET_SN_109_2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NUMBER

ONNETNEW_SN_109_2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

NEW_199_2_DR_SN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

NEW_199_2_DY_SN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

TRANS_199_2_DR_SN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

TRANS_199_2_DY_SN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

ONNET_SN_199_2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NUMBER

ONNETNEW_SN_199_2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER

解決方式:在目標庫添加相應字段;然后將失敗的表數據重新導入

alter table SJZX_WH_BXL_DINNER_030_D add

(

NEW_109_2_DR_SN ? NUMBER ,

NEW_109_2_DY_SN ? NUMBER ,

TRANS_109_2_DR_SN NUMBER ,

TRANS_109_2_DY_SN NUMBER ,

ONNET_SN_109_2 ? ?NUMBER ,

ONNETNEW_SN_109_2 NUMBER ,

NEW_199_2_DR_SN ? NUMBER ,

NEW_199_2_DY_SN ? NUMBER ,

TRANS_199_2_DR_SN NUMBER ,

TRANS_199_2_DY_SN NUMBER ,

ONNET_SN_199_2 ? ?NUMBER ,

ONNETNEW_SN_199_2 NUMBER

);

錯誤三:IMP-00013 場景描述:在源庫(10.2.0.4.0)使用 ALLDM 導出,在新庫(11.2.0.4.0)使用 ALLDM 用戶導入,出現的報錯

Export file created by EXPORT:V10.02.01 via direct path

IMP-00013: only a DBA can import a file exported by another DBA

IMP-00000: Import terminated unsuccessfully

1)查看源庫中 ALLDM 用戶的角色

SQL> select * from dba_role_privs where grantee='ALLDM';

GRANTEE ? ? ? ? ? ? ? ? ? ? ? ?GRANTED_ROLE ? ? ? ? ? ? ? ? ? ADM DEF

------------------------------ ------------------------------ --- ---

ALLDM ? ? ? ? ? ? ? ? ? ? ? ? ?EXP_FULL_DATABASE ? ? ? ? ? ? ?NO ?YES

ALLDM ? ? ? ? ? ? ? ? ? ? ? ? ?ROLE_DSS ? ? ? ? ? ? ? ? ? ? ? NO ?YES

2)查看目標庫中 ALLDM 用戶的角色

SQL> select * from dba_role_privs where grantee='ALLDM';

GRANTEE ? ? ? ? ? ? ? ? ? ? ? ?GRANTED_ROLE ? ? ? ? ? ? ? ? ? ADM DEF

------------------------------ ------------------------------ --- ---

ALLDM ? ? ? ? ? ? ? ? ? ? ? ? ?RESOURCE ? ? ? ? ? ? ? ? ? ? ? NO ?YES

ALLDM ? ? ? ? ? ? ? ? ? ? ? ? ?EXP_FULL_DATABASE ? ? ? ? ? ? ?NO ?YES

ALLDM ? ? ? ? ? ? ? ? ? ? ? ? ?ROLE_DSS ? ? ? ? ? ? ? ? ? ? ? NO ?YES

錯誤原因:如果導出文件是由一個具有?EXP_FULL_DATABASE 角色的用戶創建的,那么你必須具有 IMP_FULL_DATABASE 角色才可以導入它

解決方式: 1)將?IMP_FULL_DATABASE 角色授予 ALLDM 用戶 grant IMP_FULL_DATABASE to ALLDM; ?2)或使用 SYS 用戶導入

imp \'sys/oracle123 AS SYSDBA\'

查看 SYS 用戶和 導入導出相關的角色

SQL> select * from dba_role_privs where granted_role like '%FULL%' and grantee='SYS';

GRANTEE ? ? ? ? ? ? ? ? ? ? ? ?GRANTED_ROLE ? ? ? ? ? ? ? ? ? ADM DEF

------------------------------ ------------------------------ --- ---

SYS ? ? ? ? ? ? ? ? ? ? ? ? ? ?IMP_FULL_DATABASE ? ? ? ? ? ? ?YES YES

SYS ? ? ? ? ? ? ? ? ? ? ? ? ? ?EXP_FULL_DATABASE ? ? ? ? ? ? ?YES YES

SYS ? ? ? ? ? ? ? ? ? ? ? ? ? ?DATAPUMP_IMP_FULL_DATABASE ? ? YES YES

SYS ? ? ? ? ? ? ? ? ? ? ? ? ? ?DATAPUMP_EXP_FULL_DATABASE ? ? YES YES

總結

以上是生活随笔為你收集整理的oracle导入视图报错,exp/imp 报错处理(EXP-00003 / IMP-00019 / IMP-00058)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。