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


    因为喜欢新的东西,所以基本上电脑的开发工具都是最新的,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("版本格式错误。");
            }

     REFRENCES:http://www.cnblogs.com/alxc/archive/2011/03/25/1995279.html

     

    https://files.cnblogs.com/alxc/AlxcTools.rar


    ---------------------------------------------------------------------------------------------------------------------------------
    copyright:http://www.cnblogs.com/anee/
  • 相关阅读:
    校验XX是否在有效期内
    Thymleaf js直接获取后台传过来的对象或者对象的属性以及map
    H5新特性之data-*
    Thymleaf中th:each标签遍历list如何获取index
    SpringBoot图片上传(三)——调用文件上传项目的方法(同时启动两个项目)
    根据状态码,展示不同的文本,两种方法简单讨论
    列表前台验空的必要性
    thymleaf模板截取日期的年月日,去掉时分秒
    javaWeb锁屏的简单实现
    svn上check下来的项目,用idea打开,菜单栏没有svn工具解决办法
  • 原文地址:https://www.cnblogs.com/anee/p/2675729.html
Copyright © 2020-2023  润新知