oracle dmp版本notepad,Oracle 11g数据迁到Oracle10g(用工具修改dmp文件)

因为喜欢新的东西,所以基本上电脑的开发工具都是最新的,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)

59308176_1.jpg

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("版本格式错误。");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值