因为服务器装了oracle 11G,本地装了oracle 10g,从服务器上导出的dmp文件在放到本地导入时,都显示:
IMP-00010:不是有效的导出文件,头部验证失败
后来在网上找了一哈资料,看到以下内容,下载下来试着修改了一下,还真可以导入了。
为了这个问题一直苦恼,差点就想卸掉11g然后装10g了,后来想想,头部验证,那么头部到底是什么,用Notepad++查看了dmp文件,发现头部真的显示一些东西:
11g R2:V11.02.00
11g R1:V11.01.00
10g:V10.02.01
把版本改成对方机子数据库版本,执行imp就不再报错了。
考虑到如果文件过大,可能打不开导致死机,做个小程序。(C# WINFORM)
2个按钮的事件:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog file = new OpenFileDialog();
file.InitialDirectory = Application.ExecutablePath;
if (file.ShowDialog() == DialogResult.OK)
{
String path =label11.Text= file.FileName;
FileStream fs = File.OpenRead(path);
fs.Seek(0, SeekOrigin.Begin);
byte[] byData = new byte[100];
fs.Read(byData, 0, 50);
string charData = new UTF8Encoding(true).GetString(byData, 0, byData.Length);
string[] da = System.Text.RegularExpressions.Regex.Split(charData, @":V", RegexOptions.IgnoreCase);
Regex r = new Regex(@":V\d{2}\.\d{2}\.\d{2}");
Match m = r.Match(charData);
label9.Text = m.Index.ToString ();
label10.Text = m.Length.ToString();
textBox1.Text = System.Text.RegularExpressions.Regex.Split(m.Value, @":V", RegexOptions.IgnoreCase)[1];
fs.Close();
}
}
private void button2_Click(object sender, EventArgs e)
{
Regex r = new Regex(@"\d{2}\.\d{2}\.\d{2}");
Match m = r.Match(textBox1.Text);
if (m.Success)
{
FileStream fs = File.OpenWrite(label11.Text);
fs.Seek(int.Parse(label9.Text.ToString())+2, SeekOrigin.Begin);
Byte[] info = new UTF8Encoding(true).GetBytes(textBox1.Text);
fs.Write(info, 0, info.Length);
fs.Close();
MessageBox.Show("版本修改成功。");
}
else
MessageBox.Show("版本格式错误。");
}
我已上传附件。大家可根据图片执行软件完成。
相关推荐
NULL 博文链接:https://bri-robby.iteye.com/blog/2327887
IMP-00010:不是有效的导出文件,头部验证失败 为了这个问题一直苦恼,差点就想卸掉11g然后装10g了,后来想想,头部验证,那么头部到底是什么,用Notepad++查看了dmp文件,发现头部真的显示一些东西: 11g R2...
AlxcTools 修改Oracle数据库dmp文件版本号 修改dmp版本号 IMP-00010 不是有效的导出文件,头部验证失败
oracle跨版本导入备份DMP报实际值最大值错误
修改dmp文件中的数据库版本号;IMP-00010:不是有效的导出文件,头部验证失败 _____________________________
导入数据库:imp 导出数据库:exp
oracle导入dmp文件的时候,版本号不一致,有时候修改dmp文件版本号不能解决问题,需要把使用的imp.exe文件也要和数据库版本保持一致。
昨天要把自己机器上的数据库迁移到专用服务器上一份,本地安装的Oracle10g,服务器上安装的数据库是Oracle9i,一... IMP-00010:不是有效的导出文件,标题验证失败 IMP-00000:未成功导入 原因是数据库版本
oracle的impdp和expdp数据泵导入导出全备数据库-详细笔记文档总结
使用cmd语句在oracle中导入导出dmp数据库文件。
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。本文介绍如何对数据进行导入导出.
第五, 运行-cmd-进入dmp文件所在的目录, imp userid=system/manager full=y file=*.dmp 或者 imp userid=system/manager full=y file=filename.dmp 一般解决乱码可以这么做: 1.在web.xml增加filter 2.在...
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 ...
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在...
由于对数据库所做的全部改动就保存在日志文件中,如果因为包括介质失效在内的某种失效而导致数据库文件丢失的话,可以利用物理备份和归档日志完全恢复数据库,不会丢失任何数据。所有已经提交的事务都可以查到。 ·...
Oracle-dmp数据库文件导入导出工具 源码: http://code.google.com/p/oracle-impexp/downloads/list
主要介绍了oracle用imp导入dmp文件的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
oracle11g数据库导入导出: ①传统方式——exp(导出)和(imp)导入; ②数据泵方式——expdp导出和(impdp)导入; ③第三方工具——PL/sql Develpoer
oracle数据导入导出imp/exp命令使用说明
在实际工作中,有时需要将exp导出的历史备份dmp文件进行恢复,若之前的建表语句及表空间名无法找到,则直接用imp语句进行导入的话可能报错表空间不存在,且导入数据占用空间可能会非常大。使用本文方法可将exp导出的...