version 1: --------------- String strRunCommand = "SQLLDR "+p_DbConnection+" data='"+ p_LoadSourcePath+strTxtFileName+ "' control="+strFileType+".ctl log="+strLogFileName+" SKIP=1 ERRORS=10 BINDSIZE=1048576"; System.IO.File.Create(p_LoadDestinationPath+"load_run.bat").Close); StreamWriter sw = new StreamWriterp_LoadDestinationPath+"load_run.bat"); sw.WriteLine(strRunCommand); sw.Close(); System.Diagnostics.Process p = new Process(); p.StartInfo.RedirectStandardOutput=false; p.StartInfo.FileName = p_LoadDestinationPath+"load_run.bat"; p.StartInfo.UseShellExecute = false; p.StartInfo.WorkingDirectory = p_LoadDestinationPath; p.StartInfo.RedirectStandardError = true; p.Start(); p.WaitForExit();//wait with no time limit p.Dispose(); --------------- version 2: --------------- String strRunCommand = "SQLLDR "+p_DbConnection+" data='"+ p_LoadSourcePath+strTxtFileName+ "' control="+strFileType+".ctl log="+strLogFileName+" SKIP=1 ERRORS=10 BINDSIZE=1048576"; System.IO.File.Create(p_LoadDestinationPath+"load_run.bat").Close); StreamWriter sw = new StreamWriterp_LoadDestinationPath+"load_run.bat"); sw.WriteLine(strRunCommand); sw.Close(); System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo("cmd.exe"); psi.UseShellExecute = false; psi.RedirectStandardOutput = true; psi.RedirectStandardInput = true; psi.RedirectStandardError = true; System.Diagnostics.Process proc = System.Diagnostics.Process.Start(psi); System.IO.StreamReader strm = System.IO.File.OpenText(p_LoadDestinationPath+"load_run.bat"); System.IO.StreamReader sOut = proc.StandardOutput; System.IO.StreamWriter sIn = proc.StandardInput; while(strm.Peek() != -1) { sIn.WriteLine(strm.ReadLine()); } sIn.WriteLine("EXIT"); proc.Close(); sIn.Close(); sOut.Close();
calling SQLLDR from C# (ASP.NET) - Oracle Server
最新推荐文章于 2021-04-03 15:49:09 发布