Я предполагаю, что под словом «максимум» вы подразумевали «наиболее совместимый» в вашем вопросе?
В общем, я думаю, что вы сделали правильный выбор с Дерби. Это единственная из известных мне баз данных, которая обеспечивает такую строгую типизацию, как DB2. Полагаю, не случайно версия таблицы dual
в Derby называется SYSIBM.SYSDUMMY1
.
Лучший способ избежать проблем с несовместимостью с DML - использовать средства абстракции базы данных в вашем приложении. Если вы используете Java, такие опции могут быть предоставлены Hibernate или jOOQ . Если абстрагирование базы данных не подходит для вас, я рекомендую написать большой набор примеров запросов в автоматическом интеграционном тесте. После этого теста вы будете работать как с Derby, так и с DB2, чтобы проверить, будет ли поведение идентичным (например, вставлять записи, читать их снова с помощью JOIN, вложенных SELECTS и т. Д.).
Как разработчик jOOQ , я могу вам сказать, что самостоятельно написать интеграционные тесты будет довольно сложно, особенно для Derby и DB2! : -)