oracle 11g 空表导出】的更多相关文章

背景 oracle9用了一段时间,10用了一段时间,11现在算是主流了.11g也是坑人,空表竟然不导出,解决方法到时很多.这里只是记录下,知道有这个事情. 9的特点是还要用客户端管理工具链接服务器 10的最大改变就是oem变为bs架构了.真是牛 11扯淡地方就多了,安装包还不一样 12有个很大的不同是控制台服务好像给省了 解决方法 Select 'alter table '||table_name||' allocate extent;' from user_tables where num_r…
oracle 11g空表不能exp导出问题解决方案 最近由于要进行迁移服务器代码和数据库,突然发现导出的表少了,通过排查发现空表尽然没有exp导出,真是郁闷啊,虽然是空表没数据,但也不能没有啊,如何是好??? 拜读各位前辈大神们的博客后发现原来可以这样操作,,,哈哈,完美解决!!! 原因是11G中有个新特性,当表无数据时,不分配segment,以节省空间,只需要在空表中添加一条数据在删除,就会产生segment.导出时则可导出空表. No1.查询所有表中那些是空表. select table_n…
查询空表 并导出修改空表语句 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null; 如果表存在分区 alter table 表名 modify partition 分区名 allocate extent;…
通过exp进行数据导出的时候,如果表的数据为空,则会出现警告,并且表也不会导出,不利于数据恢复. 可以通过以下方法进行解决: 一.使用ALLOCATE EXTENT,可以导出之前已经存在的空表 --查询当前用户中所有记录数为0的表 ; --拼接SQL字符串 or num_rows is null --将查询出来的数据进行执行,更改表信息 --例如:alert table t_1 allocate extendt; --说明: --ALLOCATE EXTENT语法描述: ALLOCATE EXT…
查询空表 ' 生成分配空间的执行语句 or num_rows is null 复制出来执行即可.…
ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2)设置deferred_segment_creation参数 SQL> show parameter deferred_segment_creation NAME TYPE VALUE ------------------------------------…
之前再做项目的时候下载了一个开源的程序,数据库在移植的时候通过exp/imp导入导出,结果程序在启动时报错,对比过后发现两个数据库表相差了十几个,再排查问题,发现少掉的十几个表全部是空表,查了一下oracle11g的特性,发现当数据条数是0时不分配segment,所以就不能被导出!我勒个擦!坑爹有木有! 但是总不能每个表插入一条数据再导出吧,作为一个程序猿总不能上手工课吧,于是继续查,找到了一个解决办法,特此记录,以儆效尤! 第一种解决办法: 在创建数据库之前,先将数据库segment属性进行修…
今天凌晨在客户现场进行一个Oracle11g的数据库迁移,习惯性的用了exp/imp,然后在新的数据库发现,空表根本没有exp出来,然后查资料,发现了如下信息:[ORACLE 11G在用EXPORT导出时,空表不能导出. 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creat…
在Oracle Database 11g中有一个新特性,全表扫描可以通过直接路径读的方式来执行(Direct Path Read),这是一个合理的变化,如果全表扫描的大量数据读取是偶发性的,则直接路径读可以避免大量数据对于Buffer Cache的冲击. 当然对于小表来说,Oracle允许通过Buffer Cache来进行全表扫描,因为这可能更快,也对性能影响不大.小表受到隐含参数:_small_table_threshold 影响.如果表大于 5 倍的小表限制,则自动会使用DPR替代FTS.可…
导入数据库时,总是提示**值太大,实际值是**的错误. 具体忘了错误代码是什么了 ——! 经查询,这个是由于字符集设置的不是gbk的,导致导入时遇到中文字符出现的问题, 解决方法: 如果可以的话就把数据库的字符集修改成ZHS16GBK等中文字符集吧,此时不管中文字符还是英文字符都是2字节了 cmd命令 SQL> sqlplus /nolog; SQL> conn /as sysdba SQL> shutdown immediate; SQL> startup mount SQL&g…