Bonjour,
Je pense sqlldr est un exe donc tu n'as pas besoin d'ouvrir un shell 'cmd /C'.
1 2 3 4 5 6 7 8 9 10 11
|
String[] m_cmd = {"F:\\oracle\\ora92\\bin\\sqlldr",
"pyrites_bel/pyrites@orcl",
"control=" + m_filecomplet + ".ctl",
"data=" + m_filecomplet + ".txt",
"log=" + m_filecomplet + ".log",
"bad=" + m_filecomplet + ".bad"};
Runtime r = Runtime.getRuntime();
Process p = r.exec(m_cmd);
int status = p.waitFor();
/* Teste le status retourné par sqlldr: 0 pas d'erreur */ |
Ce code supoose que sqlldr ne lit et n'écrit aucune donnée depuis son entrée standard, sa sortie standard ou sa sortie d'erreur.
Il préférable de passer les arguments avec un array de String.
On doit toujours vérifier le status (valeur retournée par waitFor) que le sous-processus retourne.
Partager