通过exp进行数据导出的时候,如果表的数据为空,则会出现警告,并且表也不会导出,不利于数据恢复。

可以通过以下方法进行解决:

一、使用ALLOCATE EXTENT,可以导出之前已经存在的空表

--查询当前用户中所有记录数为0的表
select table_name from user_tables where NUM_ROWS=0;
--拼接SQL字符串
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null
--将查询出来的数据进行执行,更改表信息
--例如:alert table t_1 allocate extendt;
--说明:
--ALLOCATE EXTENT语法描述:
ALLOCATE EXTENT { SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer }
-----------
可以针对数据表、索引、物化视图等手工分配Extent。
ALLOCATE EXTENT使用样例:
ALLOCATE EXTENT
ALLOCATE EXTENT(SIZE integer [K | M])
ALLOCATE EXTENT(DATAFILE 'filename')
ALLOCATE EXTENT(INSTANCE integer) www.2cto.com
ALLOCATE EXTENT(SIZE integer [K | M] DATAFILE 'filename')
ALLOCATE EXTENT(SIZE integer [K | M] INSTANCE integer)
针对数据表操作的完整语法如下:
-----------
ALTER TABLE [schema.] table_name ALLOCATE EXTENT [({ SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer})]

二、修改数据库参数(deferred_segment_creation)设置:

设置deferred_segment_creation 参数为FALSE来禁用"段推迟创建"(也就是直接创建segment),无论是空表还是非空表,都分配segment。

在sqlplus中,执行如下命令:

sqlplus / as sysdba
SQL>alter system set deferred_segment_creation=false;
#查看:
SQL>show parameter deferred_segment_creation;

注意:该值设置后只对后面新增的表产生作用,对之前建立的空表(已经存在的)不起作用,仍不能导出。

并且要重新启动数据库,让参数生效,为了使得后续新增的表也可以导出,建议使用第二种方法

参考:

http://blog.sina.com.cn/s/blog_5f0e9ca50101it7n.html

http://www.cnblogs.com/live365wang/p/4482585.html

Oracle 11G空表无法导出处理的更多相关文章

  1. oracle 11g 空表也导出

    查询空表 并导出修改空表语句 select 'alter table '||table_name||' allocate extent;' from user_tables where num_row ...

  2. oracle 11g空表不能exp导出问题解决方案

    oracle 11g空表不能exp导出问题解决方案 最近由于要进行迁移服务器代码和数据库,突然发现导出的表少了,通过排查发现空表尽然没有exp导出,真是郁闷啊,虽然是空表没数据,但也不能没有啊,如何是 ...

  3. oracle 11g 空表导出

    背景 oracle9用了一段时间,10用了一段时间,11现在算是主流了.11g也是坑人,空表竟然不导出,解决方法到时很多.这里只是记录下,知道有这个事情. 9的特点是还要用客户端管理工具链接服务器 1 ...

  4. oracle 11g空表导不出问题

    查询空表 ' 生成分配空间的执行语句 or num_rows is null 复制出来执行即可.

  5. Oracle解决空表不导出

    Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows ...

  6. Oracle 11G在用EXP 导出时,空表不能导出解决

    Oracle 11G在用EXP 导出时,空表不能导出解决 (转)(.http://wanwentao.blog.51cto.com/2406488/545154 11G中有个新特性,当表无数据时,不分 ...

  7. 解决Oracle 11g在用EXP导出时,空表不能导出

    实践结论可行,看"2.解决办法" 一.问题原因:     11G中有个新特性,当表无数据时,不分配segment,以节省空间     1.insert一行,再rollback就产生 ...

  8. Oracle 11g用exp无法导出空表的处理方法

    Oracle 11G在用EXPORT导出时,空表不能导出. 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment ...

  9. 【转】解决Oracle 11g在用EXP导出时,空表不能导出

    一.问题原因: 11G中有个新特性,当表无数据时,不分配segment,以节省空间 .insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segme ...

随机推荐

  1. Linux(二)-- Linux配置及指令

    一.linux中常用软件的安装 yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix ...

  2. [日常] gitlab创建用户并把用户加入项目

    在gitlab里创建用户 默认密码是要求创建的用户自己去邮箱重置,也可以创建完成后直接点击编辑,就可以更改密码了 创建完用户,用户登录的时候需要去重置密码 创建完项目,就可以去使用了 也可以为这个项目 ...

  3. [PHP] 基于redis的分布式锁防止高并发重复请求

    需求:我们先举个某系统验证的列子:(A渠道系统,业务B系统,外部厂商C系统) (1)B业务系统调用A渠道系统,验证传入的手机.身份证.姓名三要素是否一致. (2)A渠道系统再调用外部厂商C系统. (3 ...

  4. weblogic(一).简介与安装

    weblogic(一).简介与安装   WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发.集 ...

  5. CodeForces - 1253D(并查集)

    题意 https://vjudge.net/problem/CodeForces-1253D 一个无向图,对于任意l,r,如果l到r有路径,那么l到m也有路径(l<m<r),问最少加多少条 ...

  6. python3.5.3rc1学习一

    print ("Hello Pythoh3")print('我喜欢"香蕉"')print('we\'ar go to shoping.')print(" ...

  7. 解决Django-Error: That port is already in use

    Error: That port is already in use. 1.使用python manage.py runserver 8001 开一个新的端口. 2.kill掉原来的端口(在root条 ...

  8. 简化wcf的service设置

    使用wcf作为c/s的通信桥梁,就免不了要写wcf service,更免不了写一些配置. 但是在把系统中所有的.net remoting service都转换成wcf service以后,发现居然有2 ...

  9. mysql8

    解决navicat不能连接问题: grant all privileges on *.* to ‘root’@’%’;ALTER USER 'root'@'localhost' IDENTIFIED ...

  10. webpack-实用的2个配置

    ①:运行npm run dev 后自动打开浏览器    首先找到config里面的index.js文件,然后打开找到autoOpenBrowser属性,把默认的false改为true即可 ②:简写路径 ...