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

查看源库中表的行数,可以发现,所有行都已经被导出

724aa0fe7e20a3771e8db01dc09816f4.png

05fb7a58836be2a13dbadc1d195d7142.png

根据 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重磅大礼!100本《机器学习》by周志华,免费送!

我 相 信 这 么 优秀 的 你 已 经 置 顶 了 我 亲爱的小伙伴们~ 我可想死你们啦! 福利小编再次上线 继续给大家送温暖~ 100本! 《机器学习》 by 周志华 内容简介 机器学习是计算机科学与人工智能的重要分支领域. 本书作为该领域的入门教材&a…

动态箭头gif图标_别以为只有专业人士才能做出酷炫的#动态跑分图#

如果经常关注数据可视化的话,你可能会发现一种流行的动态图表形式——动态跑分图(bar chart race)。这种动态图表的精髓是,通过数据范围的变化(通常是以日期为主),以条形图展现各数据序列间的关…

什么是云原生?

> 一千个读者眼里有一千个哈姆雷特,本号近半年零零散散写了一些云原生、Devops的文章, 最近系统阅读微软Docs, 今天开始结合自己的实践专题意译[云原生]。近几年,云原生成为了软件行业的驱动力。这是一种构建大型复杂系统的新…

宇宙十大不为人知的事情

仰望星空,才知人类如何渺小可怜,还需要继续思考很多年才知道,科学的尽头是神学。宇宙有你想象的到的所有东西,还有你想象不道的更多东西,就比如以下的宇宙十大真相。 一、宇宙空洞 除了黑洞,宇宙中另一种结…

idea shell 中的函数 跳转_SpringBoot项目打包+shell脚本部署实践,太有用了

本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作;profiles指定不同环境的配置maven-assembly-plugin打发布压缩包分享shenniu_publish.sh程序启动工具linux上使用shenniu_publish.…

阅读源码的真正价值

大家好,我是Z哥。最近有位小伙伴求职遇到一些挫折,来找到我聊,其中有问到一个涉及到「阅读源码的必要性」的问题:“有很多场面试,面试官都有问到某个框架的某个功能是怎么实现的,难道真的要去看源码吗&…

vst3插件_Steinberg发布新的VST 3.7 SDK,音乐软件开发者速来围观

Steinberg日前宣布最新的VST SDK(软件开发工具包)即将面市。最新的VST 3.7引入了多项SDK接口增强功能,使VST3宿主和插件之间的集成达到了新的水平,还包括新的VST3项目生成器、改进的文档以及对MIDI 2.0的支持,还可以开…

GitHub 2017 年度报告,最受欢迎的编程语言是?

GitHub 每年都会在年度盛会中推出数据报告,其中列出了一些年度的数据,包括其网站中最受欢迎的编程语言、开源项目等。今年的数据更是让人眼前一亮,Python 这匹编程语言中的黑马,势不可挡! 编程语言之间的战争就是一场持…

python except用法和作用_121个问题答对80%那么恭喜你,Python的高薪工作迟早有你一份...

1. Python和Java、PHP、C、C#、C等其他语言的对比?2. 简述解释型和编译型编程语言?3. 代码中要修改不可变数据会出现什么问题? 抛出什么异4. print 调用 Python 中底层的什么方法?5. 简述你对 input()函数的理解?6. Python解释器种类以及特点&#xf…

GraphQL:来来来,Union

Union就是把不相干的一些数据实体,合并起来,一起供外部查询。不用像webapi,完成查询不同的数据,需要多次请求。一次请求,获取多样数据,减少请求次数,这也是GraphQL的优势之一。怎么弄&#xff0…

每个程序员都应该知道的基础数论

这篇文章讨论了数论中每个程序员都应该知道的几个重要概念。本文的内容既不是对数论的入门介绍,也不是针对数论中任何特定算法的讨论,而只是想要做为数论的一篇参考。如果读者想要获取关于数论的更多细节,文中也提供了一些外部的参考文献&…

powerbi视觉对象_玩转Power BI的图片可视化

​制作可视化报告时,为了展示效果,有时候需要用图片来展示,在 Power BI 中,关于图片的自定义视觉对象主要有下面三个,利用他们可以很轻松的进行图片可视化。下面来看看这些视觉对象的效果。样本数据如下:为…

东南大学计算机网络_东南大学,2020年东南大学高考录取分数线分析

各位读者大家好,今天给大家介绍的是南京重点大学—东南大学。小编一直从事高等教育领域的写作,感兴趣的读者可以关注一下小编~1.学校基础东南大学,简称“东大”,是中华人民共和国教育部直属、中央直管副部级建制的全国重点大学&am…

Goodbye 2020,Welcome 2021 | 沉淀 2021

引言2021年,已开启二月的篇章,农历新年也张灯结彩而来,只不过要留守过年。在这辞旧迎新之际,踏入而立之年之时,正是算账的好时候,数一数今年的成长,讲一讲来年的期望,最重要的还是要…

程序员必须知道的十大基础实用算法及其讲解

本文盘点程序员必须知道的十大基础实用算法及其讲解。 算法一:快速排序算法 快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(nlogn) 次比较。在最坏状况下则需要Ο(n2) 次比较,但这种状况并不常见。事实上&#…

sql 日期和当前日期时间差_详解PostgreSQL 如何获取当前日期时间

概述开发数据库应用或者调试代码时,经常需要获取系统的当前日期和时间,今天主要看一下 PostgreSQL 中提供的相关函数。一、当前日期CURRENT_DATECURRENT_DATE 函数用于获取数据库服务器的当前日期:postgres# SELECT CURRENT_DATE;调用该函数时…

我们只知大势将至,却不知未来已来

❈ 凯文•凯利 《必然》: 未来的一切事物的生命都将是无穷尽的升级,而且迭代的速度不断的在加速。包括看得见的事物,也包括看不见的审美观和价值观。无论你使用一项工具的时间有多长,不断的升级都会把你变成一个菜鸟,从…

c#爬虫-1688官网自动登录

背景在1688官网里面有很多信息是需要登录才能看得到的,比如商家的联系电话等等。那么我们在抓取它的网页的时候,肯定是需要维持登录状态才能得到对应的内容。这里面就会涉及到自动登录的问题。登录地址https://login.1688.com/member/signin.htm自动登录…

tensorrt轻松部署高性能dnn推理_部署环境之:tensorRT的插件

TensorRT是一个高性能的深度学习推理(Inference)优化器,可以为深度学习应用提供低延迟、高吞吐率的部署推理。TensorRT可用于对超大规模数据中心、嵌入式平台或自动驾驶平台进行推理加速。TensorRT现已能支持TensorFlow、Caffe、Mxnet、Pytor…

做一个网站多少钱?

「一辆车子多少钱?一个房子多少钱?」 这问题在工程师或设计师的眼里就如「一辆车子多少钱?一个房子多少钱?」,这个问题实在空泛到一个让人无法言语的境界,这也是我最常被问到的问题「做一个网站多少钱?」。…