我本地安装的oracle版本和服务器上安装的版本都是一样的,但我将服务器上某个用户的数据导出为 dmp , 然后在本地 imp , 结果发现少了很多的表,我把导出的 dmp 文件 ,再直接导成SQL 脚本,脚本里也没有这些少了的表。这是怎么回事呢?我用的oracle 版本为 11.2.0.1.0
解决方案 »
- java调用存储过程时出错,在线等
- oracle 10g rac ocsf2存储扩容问题
- 怎么向中间表里插入数据
- 一个字段里,部分中文正常,部分中文乱码,如何能将乱码的记录选出来?
- 急急急 大家帮帮忙 十分感谢
- 存储过程中用什么变量保存取出来的记录集(类似于structure),不用游标????????
- 大哥大姐用ultraedit 编辑pro c的 .pc 文檔,高亮显示错误问题; drabit(square) 一定要来阿
- sqlloader导入数据时破坏主键唯一性的问题
- 为什么刚装的客户端无法与服务器连接!!!!!
- 是不是所有的VIEW都可以用INSERT进行直接插数据?
- sqlplus如何连接远程oracle?
- 求助,,not like 的实现
还有 imp的时候有没有报异常或警告?
具体的报错信息 以及你的imp写法 加上ignore=y
在6楼的提醒下,经过观察和上网查询,确实如6楼所说,在oracle11g中如果表为空,是不会导出到dmp文件中: 我这这样解决的
1. 利用PL/SQL Developer 中的 Reports > Objects > Tables 分析工具,可以通过 Num Rows 查看到记录为 0 的表
2. 在 PowerDesigner 中建立逆向工程,选中刚才的表,执行测试数据的插入,然后再执行删除旧记录的操作,就使数据库完成了给表分配数据段的工作,就可以正常导出了。 提示: 第一步分析表的功能,建议在服务不忙时再做,因为我们在执行完这个命令后,应用突然连接不上数据库了,后来查询得知,引用如下内容
“对表和索引的分析也需要占用系统资源,可能会影响到其他事务的运行。”
“一些数据量小的数据表(数据字典表)就没有必要进行分析,对于一些数据量频繁变化的数据表倒是有必要经常进行分析,避免对执行计划的影响。”
重起服务后,就可以了
执行如下命令 alter system set deferred_segment_creation=false; 执行后,新建的表,即使数据为空,也会被导出了(旧表不起作用)
再此感谢大家,谢谢!