Отслеживание любых ошибок при выполнении файлов SQL на базе данных SQL Server с использованием Java - PullRequest
0 голосов
/ 24 октября 2018

Мы выполняем файлы 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 какие-либо настройки для проверки успешного выполнения скрипта.

Заранее спасибо.

1 Ответ

0 голосов
/ 24 октября 2018

Вам следует подумать об использовании соединения JDBC для применения вашего sql, вместо этого возникнет исключение, при котором вы можете перехватывать и обрабатывать многие виды проблем и вести журналы разных типов.

https://docs.oracle.com/javase/tutorial/jdbc/basics/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...