在使用 FBManager 创建的数据库上设置默认字符集
Set default charset on a database created with FBManager
我已经使用 jaybirds 的 class FBManager
创建了一个数据库,但我找不到为它指定 default charset
的方法(默认为 NONE
).
我错过了什么吗?是否可以在创建数据库后定义它?
这是用于创建它的代码段
FBManager fbm = new FBManager();
fbm.start();
fbm.createDatabase("./fb.fdb", "user", "password");
fbm.stop();
Jaybird 3.0.6 及更高版本现已提供此功能。有关详细信息,请参阅 。
您没有遗漏任何东西:FBManager
确实没有此功能。考虑在 http://tracker.firebirdsql.org/browse/JDBC
上提交改进票
此功能现在可用 Jaybird 3.0.6 and higher. The method FBManager.setDefaultCharacterSet
已添加以设置默认字符集。
对于早期版本的 Jaybird,作为解决方法,您需要在创建数据库后更改默认字符集。
对于 Firebird 3 及更高版本,您可以使用
ALTER DATABASE SET DEFAULT CHARACTER SET UTF8
另请参阅 Firebird 3 发行说明中的 Alter the Default Character Set。
对于 Firebird 2.5 及更早版本,您需要直接修改系统表(Firebird 3 不再支持):
UPDATE RDB$DATABASE SET RDB$CHARACTER_SET_NAME = 'UTF8'
如果 UTF8
是不同的字符集,请将其替换为您想要的默认字符集。
必须以数据库所有者或 SYSDBA 用户身份执行任一语句。
请注意,更改默认字符集仅对在设置新默认值后创建的列有影响。现有的 (var)char 列将保留其旧字符集。
免责声明:我为 Firebird 维护 Jaybird JDBC 驱动程序。
我已经使用 jaybirds 的 class FBManager
创建了一个数据库,但我找不到为它指定 default charset
的方法(默认为 NONE
).
我错过了什么吗?是否可以在创建数据库后定义它?
这是用于创建它的代码段
FBManager fbm = new FBManager();
fbm.start();
fbm.createDatabase("./fb.fdb", "user", "password");
fbm.stop();
Jaybird 3.0.6 及更高版本现已提供此功能。有关详细信息,请参阅
您没有遗漏任何东西:FBManager
确实没有此功能。考虑在 http://tracker.firebirdsql.org/browse/JDBC
此功能现在可用 Jaybird 3.0.6 and higher. The method FBManager.setDefaultCharacterSet
已添加以设置默认字符集。
对于早期版本的 Jaybird,作为解决方法,您需要在创建数据库后更改默认字符集。
对于 Firebird 3 及更高版本,您可以使用
ALTER DATABASE SET DEFAULT CHARACTER SET UTF8
另请参阅 Firebird 3 发行说明中的 Alter the Default Character Set。
对于 Firebird 2.5 及更早版本,您需要直接修改系统表(Firebird 3 不再支持):
UPDATE RDB$DATABASE SET RDB$CHARACTER_SET_NAME = 'UTF8'
如果 UTF8
是不同的字符集,请将其替换为您想要的默认字符集。
必须以数据库所有者或 SYSDBA 用户身份执行任一语句。
请注意,更改默认字符集仅对在设置新默认值后创建的列有影响。现有的 (var)char 列将保留其旧字符集。
免责声明:我为 Firebird 维护 Jaybird JDBC 驱动程序。