Я работаю над проектом, в котором мы можем использовать базу данных Oracle 11g или Oracle 12c в зависимости от того, что доступно в различных средах - не идеально, я знаю: (
Мой проект - приложение Spring Boot, и я использую Liquibase для управления объектами базы данных.
Моя проблема в том, что если я работаю с базой данных Oracle 12c, я бы хотел воспользоваться автоматически увеличивающимися идентификаторами, а в Oracle 11g мне придется полагаться на триггер и последовательность.
Есть ли способ определить, поддерживает ли текущая версия Oracle автоматическое увеличение или мне нужно посмотреть номер версии?
SQL, который у меня сейчас есть, работает, просто смотрит на номер версии:
SELECT
CASE
WHEN (TO_NUMBER(SUBSTR(version, 1, INSTR(version, '.') - 1)) >= 12) THEN
1
ELSE
0
END AS SUPPORTS_AUTO_INC
FROM
V$INSTANCE;
Я бы предпочел иметь некоторый SQL, который проверяет, доступна ли функция ( тот же принцип при использовании функций в CSS ).
Кто знает, возможно, Oracle удалит эту функцию в будущем.