文档章节

PLSQL数据导入导出问题解决(空表、大字段表、表空间错误等)

石头大爷
 石头大爷
发布于 2016/06/14 11:34
字数 839
阅读 12
收藏 0
点赞 0
评论 0

PLSQL使用方法简单,平常使用较多,但在平常使用过程中,遇到一些问题,下面简单罗列并进行解决。这些解决方法大多通过网络查找获得,这里只是进行简单整理。

使用的数据库版本为:Oracle11g。

通用方法:表结构和数据分开导出导入,通用方法可以解决很多问题,对于下面的错误页可以通过这个方法进行解决。

方法说明:通过工具—>导出用户对象 导出用户表结构,可以通过编辑方式对表结构进行编辑后在导入的时候选择导入表—>SQL插入方式导入表结构。

               表结构导入后可以采用dmp导入导出的方式进行数据导入,对于部分表可以采用数据复制的方式进行数据导入。

1、在数据导出的时候,无法导出空表,提示错误“导出表报EXP-00011:table不存在”。

原因:11g默认创建一个表时不分配segment,只有在插入数据时才会产生(当然也可以强制分配),以节省磁盘空间。

解决方法:

            第一种:在空表中插入一条数据然后再对插入的数据进行删除,便可以进行数据导出(如果表少的话可以手动执行,对于多个表的情况可以采用语句进行批量操作的)。

            第二种:可以使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。

                        查找空表语句:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

                        注意:我在查询过程中可能查找的空表有遗漏,这个可以先进行一遍导出

                        image

                        把查询结果导出,执行导出的语句即可。

                        导出结果可以通过语句导出,在PLSQL命令窗口执行下面语句:                       

                        set heading off; 
                        set echo off; 
                        set feedback off; 
                        set termout on; 
                        spool C:\allocate.sql; 
                        Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 
                        spool off;

                        导出后执行导出语句 
                        @ C:\allocate.sql;

                        image

            第三种:设置deferred_segment_creation 参数,该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。

                   需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。

                        在PLSQL中执行命令就下面第一句查看deferred_segment_creation属性是否为true,如果为true则继续执行后面一句进行更改即可。

                        show parameter deferred_segment_creation;

                        alter system set deferred_segment_creation = false;

                        image

2、对于包含大字段的表当表空间名称改变时无法导出导入。

           查看所有包含大字段的表名称:select table_name from user_tab_columns where data_type='clob' or data_type='NCLOB'or data_type='BLOB'

           对于这些表可以采用先建立表结构在通过导入数据方式进行。

3、可能由于权限设置原因,导致导入表的表空间名称不正确。

           可以采用通用方法进行表结构导出,然后进行编辑后在进行导入,在编辑的时候修改表空间名称即可。

本文转载自:http://www.cnblogs.com/Jingkunliu/p/3298597.html

共有 人打赏支持
石头大爷
粉丝 0
博文 5
码字总数 0
作品 0
合肥
oracle dmp文件导入时报表空间错误:

导师给了我一个dmp文件,我在导入到我本地的oracle 10g数据库时,会报表空间错误。我用的语句是:imp userid=fsc/fsc full=y file=fscys.dmp 我是在本地新建的一个表空间和用户,应该跟dmp文...

liu奇峰
2012/08/21
1K
2
Oracle数据库导入导出逻辑备份方法总结

【EXP常用参数】 USERID 即用户名/密码该参数就必须且为第一个; FILE 指定数据输出文件路径; LOG 指定日志输出文件路径; TABLES 导出指定表数据; FULL 完全导出整个文件(N); ROWS 导出数...

有功夫
2016/09/24
0
0
一个支持 DbFirst、ModelFirst 和 CodeFirst 的数据库小工具DbTool

DbTool 一个支持 DbFirst、ModelFirst 和 CodeFirst 的数据库工具。 简介 这是一个针对 和 的数据库的小工具,可以利用这个小工具生成数据库表对应的 Model,并且会判断数据表列是否可以为空...

天天向上卡索
01/24
0
0
LOB字段导入遇出现ORA-00959错误, 并由此引发IMP-00017和IMP-00003错误

今天导数据,imp时出现错误: IMP-00017: following statement failed with ORACLE error 959: "CREATE TABLE "SYS_FORMFILEINFO" ("FPKID" NUMBER(22, 0) NOT NULL ENABLE, "FO" "RMTYPE" ......

wyan117
2013/02/22
0
0
使用PLSQL 创建Oracle数据库用户

1、 首先在 PLSQL Developer 中打开数据库。使用 "sys" 用户,输入数据库名称,输入该数据库 ”sys” 用户的密码,在 ”Connect as” 组合框中选中 “SYSDBA”。单击OK 按钮打开数据库。 2、...

余路
2012/05/08
0
4
解决exp无法导出问题

用exp无法导出空表解决方法/用exp导出数据时表丢失原因 使用oracle 11g导出数据发现有的表丢失原因是: 11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPORT导出时...

yangwangbaby
2017/06/24
0
0
利用第三方工具进行数据库转移—导入导出、备份还原

前文 所谓数据库的转移,说白了就是把开发使用的数据库服务器上做好的表、数据、存储过程等复制出来,再导入到另一个服务器中。 一般来说方法有三种: 一是利用数据库自己的带参命令exp和imp...

roadByroad
2013/07/12
0
0
Oracle使用PLSQL连接时,导入导出问题

一、数据库导出 使用plsql导出数据库,一般情况下,导出DMP文件。导出时需要注意的事项是,要选中需要导出的表名。如下图: 然后点击export,出现 等待导出完成就可以啦。 导出的问题不是很多...

lar555
2016/11/02
41
0
如何利用Object Browser图形化工具提高Oracle开发工作效率(六)数据库转移

■前文 所谓数据库的转移,说白了就是把开发使用的数据库服务器上做好的表、数据、存储过程等复制出来,再导入到另一个服务器中。 一般来说方法有三种: 一是利用数据库自己的带参命令exp和i...

海尼
2013/08/05
556
0
oracle表数据导出dmp文件

一、plsql工具导出dmp文件 工具—>导出表 选择要导出的表 如图所示 二、使用命令方式 查看本地oracle客户端配置tnsname.ora配置信息文件 #=uc/uc 本机数据库文件==LC_UC= (DESCRIPTION = (AD...

思悟修
2016/03/01
50
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

百度云iOS架构师在职场中的忠告

1.工具不能代替思考 在我多年的咨询工作和与许多组织和管理者的共事中,我发现了修复问题的共同套路,那就是管理人员相信工具可以“解决”给出的问题。当问题域被理解透彻,并且不可能有很多...

_小迷糊
21分钟前
0
0
Java基础——异常

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 异常处理: 可以挖很多个陷阱,但是不要都是一样...

凯哥学堂
34分钟前
0
0
180723-Quick-Task 动态脚本支持框架之结构设计篇

文章链接:https://liuyueyi.github.io/hexblog/2018/07/23/180723-Quick-Task-动态脚本支持框架之结构设计篇/ Quick-Task 动态脚本支持框架之结构设计篇 相关博文: 180702-QuickTask动态脚本...

小灰灰Blog
37分钟前
0
0
SBT 常用开发技巧

SBT 一直以来都是 Scala 开发者不可言说的痛,最主要的原因就是官方文档维护质量较差,没有经过系统的、循序渐进式的整理,导致初学者入门门槛较高。虽然也有其它构建工具可以选择(例如 Mill...

joymufeng
42分钟前
0
0
HBase in Practice - 性能、监控及问题解决

李钰(社区ID:Yu Li),阿里巴巴计算平台事业部高级技术专家,HBase开源社区PMC&committer。开源技术爱好者,主要关注分布式系统设计、大数据基础平台建设等领域。连续4年基于HBase/HDFS设计和...

中国HBase技术社区
43分钟前
1
0
ES18-JAVA API 批量操作

1.批量查询 Multi Get API public static void multiGet() {// 批量查询MultiGetResponse response = getClient().prepareMultiGet().add("my_person", "my_index", "1")// 查......

贾峰uk
47分钟前
0
0
SpringBoot2.0使用health

1,引入actuator <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency> 2,application.properties ......

暗中观察
54分钟前
0
0
阿里巴巴Java开发规约

###编程规约 命名风格 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。...

简心
59分钟前
0
0
如何用TypeScript来创建一个简单的Web应用

转载地址 如何用TypeScript来创建一个简单的Web应用 安装TypeScript 获取TypeScript工具的方式: 通过npm(Node.js包管理器) npm install -g typescript 构建你的第一个TypeScript文件 创建...

durban
今天
0
0
分享好友,朋友圈自定义分享链接无效

这个问题是微信6.5.6版本以后,修改了分享规则:分享的连接必须在公众号后台设定的js安全域名内

LM_Mike
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部