Мне не удалось найти стандартное универсальное решение, поэтому для каждой базы данных необходим собственный набор тестов.
Например, для Oracle я проверял таблицы, последовательности и индексы:
select count(*) from user_tables
select count(*) from user_sequences
select count(*) from user_indexes
Для SqlServer я использовал для проверки таблиц, представлений и хранимых процедур:
SELECT * FROM sys.all_objects where type_desc in ('USER_TABLE', 'SQL_STORED_PROCEDURE', 'VIEW')
Лучшее общее (и интуитивно понятное) решение, которое я получил, это использование задачи ANT SQL - все, что мне нужно было сделать, это передать различные параметры для каждого типа базы данных.
т.е. Файл сборки ANT выглядит следующим образом:
<project name="run_sql_query" basedir="." default="main">
<!-- run_sql_query: -->
<target name="run_sql_query">
<echo message="=== running sql query from file ${database.src.file}; check the result in ${database.out.file} ==="/>
<sql classpath="${jdbc.jar.file}"
driver="${database.driver.class}"
url="${database.url}"
userid="${database.user}"
password="${database.password}"
src="${database.src.file}"
output="${database.out.file}"
print="yes"/>
</target>
<!-- Main: -->
<target name="main" depends="run_sql_query"/>
</project>
Для получения более подробной информации, пожалуйста, обратитесь к ANT:
https://ant.apache.org/manual/Tasks/sql.html