在运行里调用sqlldr上传数据能正常导入,但是在程序里却只能导入1万行,请高手帮忙看看
代码实现方式:
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = tools.SQLLDR_PATH;
p.Arguments = "control=" + tools.CTRL_AGENT_PATH + " DATA=" + FILE_NAME + " " + tools.USER_ID_PASS + " errors=30000 rows=10000 READSIZE=3533224";
p.UseShellExecute = false;
p.RedirectStandardOutput = true;
p.WindowStyle = ProcessWindowStyle.Hidden;
p.CreateNoWindow = true;
Process pro = Process.Start(p);
pro.WaitForExit(120000);
if (pro.HasExited == false)
{
pro.Kill();//后来跟踪发现还不执行完就在这里被杀掉了
}
else
{
pro.Dispose();
}请问该怎么解决这个问题,谢谢大家帮忙!

解决方案 »

  1.   

    将sqlldr命令放入一个批处理执行,如:a.bat
    sqlldr test/test control=test.ctl rows=10000 errors=3000 bindsize=10M
    exit
    然后调用在C#中调用此批处理试试
      

  2.   

    此时用不带参的WaitForExit方法等待执行完毕
    pro.WaitForExit();
      

  3.   

    在系统下,使用命令导入,加入参数log=c:\aa.log 
    看一下,日志记录的错误问题出处,然后在修改