Я создал веб на Java, который выполняет bat, потому что мы выполняем массовую загрузку данных в Oracle.Я создал командный файл с командами SQLLDR для загрузки содержимого текстового файла (выгрузка в веб-интерфейс Java) в таблицу Oracle (также я запускаю SP).
Моя партия является шаблоном, Java для ввода данных:
CD E:\temp E: SQLLDR login/password@database control=%1 log=%2 DATA=%3
ERRORS=999999
Ниже приведен пример команды CTL (я создаю CTL с Java):
ОПЦИИ (SKIP = 1) Загрузить файл данных DATA 'B3475720190305181118.txt' TRUNCATE PRESERVEBLANKS INTO TABLE Поля DGOV_DATAENTRY_TMP заканчиваются на "|"TRAILING NULLCOLS (TIPDOC, CODDOC, FLG_DIRECCION, FLG_EMAIL, FLG_TELEFONO, USU_SOLICITUD, ID_SOLICITUD)
Я знаю, что мой CTL и пакетный файл в порядке без Java, потому что, когда я выполняю), он загружает ВСЕ данные.Но в моем вебе нет.
И у меня проблема.Когда данные меньше 398, регистр не загружается:
Но если данные больше 399. Он загружается с кодом Java.Но я увидел, что загружается всего - 198 регистров.
Также это файл LOG (когда не вставляются данные):
Java-код:
public static int ejecutarBat(List<String> listComan) {
int result=-1;
logger.info("Iniciando ejecucion .BAT");
ProcessBuilder processBuilder = new ProcessBuilder(listComan);
try {
Process process = processBuilder.start();
StringBuilder output = new StringBuilder();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
output.append(line + "\n");
}
int exitVal = process.waitFor();
if (exitVal == 0) {
logger.info(output.toString());
} else {
//abnormal...
}
logger.info("Respuesta: "+exitVal);
result=exitVal;
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
return result;
}