文档章节

Oracle11g使用exp导出空表

 如月王子
发布于 2015/05/20 15:26
字数 598
阅读 3
收藏 0
点赞 0
评论 0
 

标题:Oracle11g使用exp导出空表


正文:


1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。


2、设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。

   在sqlplus中,执行如下命令:

   SQL>alter system set deferred_segment_creation=false;

   查看:
   SQL>show parameter deferred_segment_creation;


   该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。


3、可以使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。说明如下:


3.1 使用ALLOCATE EXTENT的说明


   使用ALLOCATE EXTENT可以为数据库对象分配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)
    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})]
   -----------


    故,需要构建如下样子简单的SQL命令:

   -----------
   alter table aTabelName allocate extent
   -----------

 

3.2 构建对空表分配空间的SQL命令,


    查询当前用户下的所有空表(一个用户最好对应一个默认表空间)。命令如下:

   -----------
   SQL>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
   -----------


   批量输出上述生成的SQL语句,建立C:\createsql.sql,其内容如下:

   -----------
   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:\createsql.sql,命令如下:
   -----------
   SQL>@ C:\createsql.sql;
   -----------

   执行完毕后,得到C:\allocate.sql文件。

   打开该文件会看到,已经得到对所有空表分配空间的命令SQL语句。


3.4 执行SQL命令,对空表分配空间:

   执行C:\allocate.sql,命令如下:
   -----------
   SQL>@ C:\allocate.sql;
   -----------
 
   执行完毕,表已更改。


3.4 此时执行exp命令,即可把包括空表在内的所有表,正常导出。

 

另外:Oracle11g中,对密码是大小写敏感的,即密码中的字母是区分大小写的。

      在Oracle10g中及以前,密码中的字母大小写无所谓。

 

[-完-]


                               by JRQ

                            2011/8/1 南京

 

本文转载自:http://www.cnblogs.com/java0819/archive/2011/08/03/2146206.html

共有 人打赏支持
粉丝 15
博文 177
码字总数 3194
作品 0
淮安
oracle11g导出数据库空表

项目中使用oracle11g的情况越来越常见,也经常会基于oracle11g数据库的数据迁移。缘于oracle11g的一个特性,默认情况下,oracle不会给空表分配表空间,对于这些空表,使用exp命令做导出的时候...

彭苏云 ⋅ 2014/03/26 ⋅ 0

(转)oracle11g 不能导出空表解决办法

今天升级的时候实施跟我说 他加了一张表 但是用oracle 的exp的时候 显示该表不存在。排查了下 原来是那张表没有数据。 oracle11g 有显示 不允许导出空表。于是便有了下面的资料,谷歌别人也遇...

渔樵耕读 ⋅ 2014/03/28 ⋅ 0

Oracle 11g 使用exp命令 导出空表

1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。 2、设置deferredsegmentcreation 参数为FALSE后,无论是空表还是非空表,都分配segment。 在sqlplus...

IT_小翼 ⋅ 2013/11/13 ⋅ 0

解决oracle11g数据库中空表exp无法导出的问题

之前再做项目的时候下载了一个开源的程序,数据库在移植的时候通过exp/imp导入导出,结果程序在启动时报错,对比过后发现两个数据库表相差了十几个,再排查问题,发现少掉的十几个表全部是空...

一页之秋 ⋅ 2014/07/07 ⋅ 0

Oracle数据库的备份与恢复

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 导出/导入(Export/Import)   利用Export可将数据...

libao2235 ⋅ 2015/04/22 ⋅ 0

Oracle11g expdp impdp命令详解

使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。 EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端...

liu13430 ⋅ 2015/06/24 ⋅ 0

解决exp无法导出问题

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

yangwangbaby ⋅ 2017/06/24 ⋅ 0

Oracle日常巡检维护中常用的一些STUFF

查看oracle版本 select banner from sys.v_$version; ------------------------------------- 查看不同用户的连接数 select username,count(username) from v$session where username is not......

mcluan ⋅ 2017/02/09 ⋅ 0

Oracle11gR2数据导入导出

1、数据导入导出: 1.1、导入: imp ezoffice/13572468@oa file=d:impoa11.3.0.01.dmp log=d:impimp-cf-4-29.log full=y 1.2、导出: exp ezoffice/13572468@oa file=d:expoa11.3.0.01.dmp l......

pmos ⋅ 2016/04/29 ⋅ 0

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

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

yuanhotel ⋅ 2016/01/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 9分钟前 ⋅ 0

设计模式 之 享元模式

设计模式 之 享元模式 定义 使用共享技术来有效地支持大量细粒度对象的复用 关键点:防止类多次创建,造成内存溢出; 使用享元模式来将内部状态与外部状态进行分离,在循环创建对象的环境下,...

GMarshal ⋅ 24分钟前 ⋅ 0

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 今天 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 今天 ⋅ 8

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部