calling SQLLDR from C# (ASP.NET) - Oracle Server

来源:互联网 发布:食品淘宝怎么上传 编辑:程序博客网 时间:2024/05/17 01:54
version 1:---------------String strRunCommand = "SQLLDR "+p_DbConnection+" data='"+p_LoadSourcePath+strTxtFileName+"' control="+strFileType+".ctl log="+strLogFileName+" SKIP=1 ERRORS=10BINDSIZE=1048576";System.IO.File.Create(p_LoadDestinationPath+"load_run.bat").Close);StreamWriter sw = newStreamWriterp_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 limitp.Dispose();---------------version 2:---------------String strRunCommand = "SQLLDR "+p_DbConnection+" data='"+p_LoadSourcePath+strTxtFileName+"' control="+strFileType+".ctl log="+strLogFileName+" SKIP=1 ERRORS=10BINDSIZE=1048576";System.IO.File.Create(p_LoadDestinationPath+"load_run.bat").Close);StreamWriter sw = newStreamWriterp_LoadDestinationPath+"load_run.bat");sw.WriteLine(strRunCommand);sw.Close();System.Diagnostics.ProcessStartInfo psi = newSystem.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();