在WE8MSWIN1252字符集和AL16UTF16 NCHAR字符集中完成导入,但什么都没发生



使用imp导入XXX.DMP文件时没有出现错误,但没有导入任何数据库、架构或表,日志文件也为空。这是它的外观:

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Import data only (yes/no): no >
Import file: EXPDAT.DMP > D:xxx.dmp
Enter insert buffer size (minimum is 8192) 30720>
Export file created by EXPORT:V11.02.00 via conventional path
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
C:UsersUser>

正如你所看到的,它就停在那里。

我使用的是Oracle 11和这个从Oracle 12导出的文件。然后,我手动将DMP文件头从EXPORT:V12.01.00更改为EXPORT:V11.02.00,因为它以前不适用于EXPORT:V12.01.00

我已经尝试过使用impd或使用TOAD for Oracle导入它,但两者都不起作用。

我更改了DMP文件头。。。手动

不要那样做。来自文件:

  • 任何导出转储文件都可以导入到Oracle数据库的后续版本中。

  • 导入实用程序无法读取由更高维护版本或版本的导出实用程序创建的导出转储文件。例如,9.2版的导出转储文件不能由9.0.1版的导入实用程序导入。

这并不像说标题中显示的版本不同那么简单。二进制格式是专有的,并且可以(而且可能确实(随时更改。试图操作文件只会给你带来痛苦,在你的情况下,会导致导入很早就中止——这可能是一件好事;如果它真的进一步发展,你可能会以腐败告终。

正确的做法是使用11gR2客户端执行从12cR1数据库的导出。

更正确的做法是使用数据泵工具(expdpimpdp(,而不是传统的导入/导出工具,并有类似的注意事项。


如果您的12c数据库不再可用,并且您无法进行新的导出,那么您就有点卡住了。你唯一能做的就是创建一个新的12c数据库,使用现有的转储文件来填充它,然后使用11g工具从导出。痛苦,但安全。

最新更新