Olá!
Ao executar o sqlldr utilizando Runtime.getRuntime().exec() o processo fica pendurado. Ja tentei de duas formas, uma passando o comando e os argumentos e outra chamando um .bat, as duas ficam penduradas neste ponto: proc.waitFor();
Parece que o problema está no arquivo de log. Pq se eu retirar o proc.waitFor(), o arquivo de log é gerado.
Não sei como resolver… Preciso que o processo termine para continuar, pois depois é chamada uma procedure.
Alguem ja passou por isso?
Este é o código:
try
{
proc = Runtime.getRuntime().exec("D:\oracle9i\ora92\bin\SQLLDR userid=XXXX/XXXX@XXXXX,
control=c:\Temp\importa.ctl, log=C:\Temp\log.TXT, bad=C:\Temp\bad.txt");
Process proc = null;
try
{
proc.waitFor();
}
catch (InterruptedException e)
{
if(proc != null)
proc.destroy();
e.printStackTrace();
}
proc.destroy();
}
catch (IOException e)
{
e.printStackTrace();
}