我在尝试将具有 WIN1252 字符集的 Firebird 3 数据库转换为 UTF8 时遇到问题。
我已经执行了以下程序:
- 从数据库和定义中提取 DDL,因此我使用 UTF8 字符集创建了新数据库,Collate UNICODE_CI_AI。数据库结构已正确创建。
- 当我尝试使用 fbcopy 将数据从 WIN1252 数据库复制到新的 UTF8 数据库时,该过程被中止并返回错误:
消息:isc_dsql_execute2 失败
SQL 消息:-104 无法格式化消息 13:896 - 未找到消息文件 C:\WINDOWS\SYSTEM32\firebird.msg
引擎代码:335544849 引擎消息:格式错误的字符串启用触发器...完成。
在使用FbCopy工具之前,我尝试通过WIN1252数据库的备份和恢复来执行以下命令:
-FIX_FSS_D UTF8 -FIX_FSS_M UTF8
或者
-FIX_FSS_D WIN1252 -FIX_FSS_M WIN1252
但是,我仍然遇到同样的错误。