Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 985|回复: 0

{=求解有关Oracle11g数據导出 〗

[复制链接]

该用户从未签到

发表于 2011-11-1 11:14:52 | 显示全部楼层 |阅读模式
    在實施ERPguo程zhong,使用11gdao出的数ju总提示缺少表,結果发现:11g在导出数据时,没有把空表导出,结guo导致ERP系统发生错误??
    请问:怎样能wan全2把数ju库用户下的所有表??欢迎来到Java学习Zhelun坛,轉载请注明地址:http://www.javaxxz.com.
回复

使用道具 举报

该用户从未签到

发表于 2011-11-1 11:14:59 | 显示全部楼层

Re:{=求解有关Oracle11g数據导出

11G中有个新特性,當表无数据时,不分配segment,以节省空间
      解決方法:
      1、insert一行,再rollback就產生segment了。
      该方法是在在空表中插入數据,再删除,则產生segment。导出时则可导出空表。
      2、设置deferred_segment_creation 参数
    show parameter deferred_segment_creation
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    deferred_segment_creation boolean TRUE
    SQL> alter system set deferred_segment_creation=false;
    系统已更改。
    SQL> show parameter deferred_segment_creation
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    deferred_segment_creation boolean FALSE



      该参数值默认是TRUE,当改為FALSE时,无论是空表还是非空表,都分配segment。
      需注意的是:該值设置后对以前导入的空表不產生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一種方法。
    搞了我好久,最后查到这個方法。
    先查询一下当前用户下的所有空表
    select table_name from user_tables where NUM_ROWS=0;
    用以下這句查找空表
    select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
    把查詢结果导出,执行导出的语句
    'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
    -----------------------------------------------------------
    alter table AQ$_AQ$_MEM_MC_H allocate extent;
    alter table AQ$_AQ$_MEM_MC_G allocate extent;
    alter table AQ$_AQ$_MEM_MC_I allocate extent;
    alter table AQ$_AQ_PROP_TABLE_T allocate extent;
    alter table AQ$_AQ_PROP_TABLE_H allocate extent;
    alter table AQ$_AQ_PROP_TABLE_G allocate extent;
    alter table AQ$_AQ_PROP_TABLE_I allocate extent;
    alter table AQ$_KUPC$DATAPUMP_QUETAB_T allocate extent;
    alter table AQ$_KUPC$DATAPUMP_QUETAB_H allocate extent;
    alter table AQ$_KUPC$DATAPUMP_QUETAB_G allocate extent;
    alter table AQ$_KUPC$DATAPUMP_QUETAB_I allocate extent;
    'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
    -----------------------------------------------------------
    alter table AQ$_SYS$SERVICE_METRICS_TAB_T allocate extent;
    alter table AQ$_SYS$SERVICE_METRICS_TAB_H allocate extent;
    alter table AQ$_SYS$SERVICE_METRICS_TAB_G allocate extent;
    alter table AQ$_SYS$SERVICE_METRICS_TAB_I allocate extent;
    然后再执行
    exp 用戶名/密码@数据库名 file=/home/oracle/exp.dmp log=/home/oracle/exp_smsrun.log
    作者“xiawared”
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 11:15:05 | 显示全部楼层

Re:{=求解有关Oracle11g数據导出

两点说明:
    1、用户必須要有执行的权限。
    2、exp 用户名/密碼@数據库名 file='路徑'full=y igore=y;
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 11:15:12 | 显示全部楼层

Re:{=求解有关Oracle11g数據导出

谢谢!!我使用这条语句select table_name from user_tables where NUM_ROWS=0;怎么都查不到我数據库中的空表??再有空表很多,一个个賦值不太現实??有没有更好的办法可以实现批量赋值???
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-21 22:23 , Processed in 0.415167 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表