oracle://user:password@service?
ClientCharset=кодировка& [3.1.2] LowerCaseColumnNames=0& [3.1.1] DisableQueryModification=0& [3.3.0] NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251&
NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS&
NLS_LANGUAGE=language-dependent conventions&
NLS_TERRITORY=territory-dependent conventions&
NLS_DATE_LANGUAGE=language for day and month names&
NLS_NUMERIC_CHARACTERS=decimal character and group separator&
NLS_CURRENCY=local currency symbol&
NLS_ISO_CURRENCY=ISO currency symbol&
NLS_SORT=sort sequence&
ORA_ENCRYPT_LOGIN=TRUE
ClientCharset - задает кодировку, в которой необходимо общаться с SQL-сервером, перекодированием занимается драйвер.
Если имена колонок в запросе select не взять в кавычки, Oracle преобразует их к ВЕРХНЕМУ регистру. По-умолчанию, Parser преобразует их к нижнему регистру. Указав параметр LowerCaseColumnNames=0 можно отключить преобразование в нижний регистр.
При выполнении запроса с limit/offset драйвер модифицирует текст запроса для отсечения ненужных данных средствами SQL сервера. Однако в случае проблем это поведение можно отключить с помощью параметра DisableQueryModification=1.
Информацию по остальным параметрам можно найти в документации по «Environment variables» для Oracle. Однако, мы рекомендуем всегда задавать параметры NLS_LANG и NLS_DATE_FORMAT такими, какие указаны выше.
Пример
Допустим данные в вашей базе хранятся в кодировке windows-1251, строку подключения стоит написать так:
oracle://user:password@service?ClientCharset=windows-1251&NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251&NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS