日期:2014-05-18  浏览次数:20878 次

请问c#如何实现将oracle数据库备份成*.dmp类型的文件
如题,是用程序实现,谢谢大家

------解决方案--------------------
学习了http://dava.itpub.net/post/2653/279019
------解决方案--------------------
C# code


   /// <summary>
        /// MrTom
        /// Oracle数据库备份
        /// </summary>
        private void OracleBackUp()
        {
            //创建一个进程实例
            Process p = new Process();
            //生成备份文件的文件名称
            string filename = "E:\\DBData" + System.DateTime.Today.ToString("yyyyMMdd") + ".dmp";
            //导出程序路径
            p.StartInfo.FileName = "D:\\oracle\\product\\10.2.0\\db_1\\BIN\\exp.exe";
            //D:\oracle\product\10.2.0\db_1\bin\imp.exe
            //启用操作系统外壳程序执行
            p.StartInfo.UseShellExecute = true;
            //显示dos窗口执行过程
            p.StartInfo.CreateNoWindow = false;
            //执行参数用户名和密码还有本机配置的Oracle服务名[kdtc/bjdscoal@tns:orcl file=" + filename + ]
            string username = txtUsername.Text.Trim();
            string pwd = txtPwd.Text.Trim();
            string ipAddress = TxtIpAddress.Text.Trim();
            p.StartInfo.Arguments = username + "/" + pwd + "@" + ipAddress + "  file=" + filename;

------解决方案--------------------
/// <summary>
/// run command ang get the result info
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
public static string RunCmd(string command)
{
Process p = new Process();

p.StartInfo.FileName = "cmd.exe"; //filename
p.StartInfo.Arguments = "/c " + command; //argument
p.StartInfo.UseShellExecute = false; //close Shell
p.StartInfo.RedirectStandardInput = true; //redirect input
p.StartInfo.RedirectStandardOutput = true; //redirect output
p.StartInfo.RedirectStandardError = true; //redirect error
p.StartInfo.CreateNoWindow = true; //no window

p.Start(); //start

//p.StandardInput.WriteLine(command); //input the command
//p.StandardInput.WriteLine("exit"); //Exit or will cause collapse

return p.StandardOutput.ReadToEnd(); //return the result

}