我们经常会遇到有高版本的数据库(11G)导出的dmp文件,导入低版本的数据库(10G/9G),导入的时候就会提示:不是有效导出文件,头部验证失败
这样的问题,我们一般处理的方法就是降低源文件(.dmp)的版本。
在网上说什么有个AlxcTools工具,但是我试了,然并卵。如果你们成功,说明你们非常牛,顺便把成功的经验分享告诉我。
最后朋友给了我一段代码,说自己运行一下就OK。我照办,果然杠杠的。
public static void main(String[] args) {
dropOracle("C:\\20160527.dmp");
}
public static void dropOracle(String fileName){
try{
RandomAccessFile raf = new RandomAccessFile(fileName,"rw");
byte b[] = new byte[50];
raf.read(b);
for(int i=0;i<b.length;i++){
System.out.print(b[i]+",");
}
b[12] = 48;//这个是修改成10g:V10.02.01。如果在修改前自己可以截出头部的几个字节确认一下,是不是就是修改第12,18字节
b[18] = 49;
raf.seek(0);
raf.write(b);
System.out.println("成功");
}catch(Exception ex){
ex.printStackTrace();
System.out.println("出错");
}
}