您的位置:首页 > 数据库 > Oracle

Oracle 11g导出来的dmp导入到 10g的数据库(IMP-00010:不是有效的导出文件,头部验证失败)

2014-06-06 15:28 1131 查看
因为喜欢新的东西,所以基本上电脑的开发工具都是最新的,oracle也装了11g R2,但是同事同学不是11g R1就是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("版本格式错误。"); }

http://files.cnblogs.com/alxc/AlxcTools.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐