Мы выполняем файлы sql на БД SQL Server, используя Java, как показано ниже.
sqlcommand = "cmd.exe /c cd C:\\C\\Test && ECHO Y | CALL sqlcmd -S ServerName -Usa -P Pwd -d DBName -i "+sqlFile+" -o "+sqlOutputFileName;
Process p = Runtime.getRuntime().exec(sqlcommand);
int processValue = p.waitFor();
Это запишет вывод в файл журнала.
Теперь мы читаем этот журналфайл для проверки успешного выполнения скрипта без каких-либо ошибок.Если есть какие-либо ошибки, мы должны прекратить выполнение следующих файлов sql.Для этого мы читаем каждую строку выходного файла и проверяем следующее условие
if(line.contains("Msg") && line.contains("State")&& line.contains("Line")){
scriptFailed = true;
break;
}
Мы предполагаем, что всякий раз, когда мы получаем какую-либо ошибку, выходной файл определенно содержит следующие теги, такие как Msg, Level,Состояние, строка и т. Д. Пример ошибки ниже
Msg 207, Level 16, State 1, Server ServerName, Line 3
Invalid column name 'MAT_COD'.
Достаточно ли этого, чтобы проверить, успешно ли выполняется сценарий или нет.Если есть какие-либо другие условия, пожалуйста, сообщите нам.
Кроме того, есть ли в sqlcmd какие-либо настройки для проверки успешного выполнения скрипта.
Заранее спасибо.