Установить кодировку по умолчанию для базы данных, созданной с помощью FBManager

Я создал базу данных, используя класс jaybirds FBManager, но я не могу найти способ указать для него default charset (по умолчанию NONE).

Я что-то упускаю? Можно ли определить его после создания базы данных?

Это фрагмент, использованный для его создания

FBManager fbm = new FBManager();
fbm.start();
fbm.createDatabase("./fb.fdb", "user", "password");
fbm.stop();

Эта функция теперь доступна в Jaybird версии 3.0.6 и выше. Дополнительные сведения см. В принятом ответе.


person Peba    schedule 06.08.2018    source источник


Ответы (1)


Вы ничего не упускаете: эта функция действительно отсутствует в FBManager. Рассмотрите возможность подачи заявки на улучшение на http://tracker.firebirdsql.org/browse/JDBC < / с>

Эта функция теперь доступна в Jaybird 3.0.6 и выше. Метод _ 2_ был добавлен для установки набора символов по умолчанию.

Для более ранних версий Jaybird в качестве временного решения вам потребуется изменить набор символов по умолчанию после создания базы данных.

Для Firebird 3 и выше вы можете сделать это, используя

ALTER DATABASE SET DEFAULT CHARACTER SET UTF8

См. Также Измените набор символов по умолчанию в примечаниях к выпуску Firebird 3.

Для Firebird 2.5 и более ранних вам потребуется изменить системные таблицы напрямую (в Firebird 3 это больше не поддерживается):

UPDATE RDB$DATABASE SET RDB$CHARACTER_SET_NAME = 'UTF8'

Замените UTF8 предполагаемым набором символов по умолчанию, если это другой набор символов.

Любой оператор должен выполняться как владелец базы данных или как пользователь SYSDBA.

Имейте в виду, что изменение набора символов по умолчанию влияет только на столбцы, созданные после установки нового значения по умолчанию. Существующие столбцы (var) char сохранят свой старый набор символов.

Отказ от ответственности: я поддерживаю JDBC-драйвер Jaybird для Firebird.

person Mark Rotteveel    schedule 07.08.2018
comment
Обходной путь сделает это. Только что заполнили билет. Спасибо. - person Peba; 07.08.2018
comment
@Peba Спасибо за это. Если это быстро и легко сделать, я сделаю это в Jaybird 4 и, возможно, даже перенесу обратно в Jaybird 3. - person Mark Rotteveel; 07.08.2018