我本地安装的oracle版本和服务器上安装的版本都是一样的,但我将服务器上某个用户的数据导出为 dmp , 然后在本地 imp , 结果发现少了很多的表,我把导出的 dmp 文件 ,再直接导成SQL 脚本,脚本里也没有这些少了的表。这是怎么回事呢?我用的oracle 版本为 11.2.0.1.0
解决方案 »
- oracle建表
- oracle存储过程问题
- 不知道为何删除数据库链接权限赋权不能成功
- 如何将一千亿的(从0到一千亿)有序数离散为随机数??急啊
- oracle中有没有类似excel中的and函数可以实现形如:if(a1 and b1,100,50)的表达形式?
- @@@@@@@@@@@@@@@如何删除已建立的数据连接?
- 如何让用户对一个表空间有权限?
- 求sql语句!
- 请问使用oracle9.2的兄弟,C:\Program Files\Oracle\jre下面的两个JRE的目录名是哪两个
- MSSQL的语句charindex(':', filename)-1在Oracle中如何实现,谢谢
- 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; 执行后,新建的表,即使数据为空,也会被导出了(旧表不起作用)
再此感谢大家,谢谢!