В результате клиент JDBC отправляет идентификатор часового пояса на сервер. Сервер должен знать эту зону. Вы можете проверить с помощью
SELECT DISTINCT tzname FROM V$TIMEZONE_NAMES where tzname like 'Etc%';
У меня есть несколько серверов БД, которые знают о «Etc / UTC» и «UTC» (tzfile версия 18), но другие знают только «UTC» (tz версия 11).
SELECT FILENAME,VERSION from V$TIMEZONE_FILE;
Существует также другое поведение на стороне клиента JDBC. Начиная с 11.2, драйвер будет отправлять идентификаторы зоны, если она «известна» Oracle, тогда как перед отправкой смещение времени. Проблема с этой «отправкой известных идентификаторов» состоит в том, что клиент не проверяет, какая версия / контент часового пояса присутствует на сервере, но имеет свой собственный список.
Это объясняется в статье поддержки Oracle [ID 1068063.1].
Похоже, это также зависит от клиентской ОС, более вероятно, что Etc / UTC завершится неудачно с Ubuntu, чем с RHEL или Windows. Я предполагаю, что это связано с некоторой нормализацией, но я не понял, что именно.