2012-05-05 48 views
1

我正尝试将旧的CACHE.DAT数据库加载到Intersystems缓存(2012.1.1 win32评估版)中。我设法创建了一个名称空间和数据库,并且我可以查询一些数据库表。Intersystems缓存发生意外错误:<WIDE CHAR>

然而,对于其他表,我得到以下错误:

ERROR #5540: SQLCODE -400 Message: Unexpected error occurred: <WIDE CHAR> 

文档告诉我,这意味着一个多字节字符读其中一个字节字符的预期。我怀疑这可能意味着原始数据库是UTF-16,而我的新安装使用的是UTF-8。

我的问题是:有没有办法转换数据库,配置缓存,以便它可以处理,或以另一种方式处理这个问题?

回答

1

也许原始数据库中的Unicode安装 和当前安装的8位创建

缓存读取其中1字节字符预期多字节字符。

+0

这就是我想得例如第一线。我知道Caché在安装过程中曾经询问过是否需要Unicode,但在安装2012.1.1期间没有出现这个问题。 – Macuyiko

+0

你可以看到旧实例的区域设置? 'zw ^%SYS(“LOCALE”)' 与新安装 比较或从url localhost:57772/csp/sys/mgr /%25CSP.UI.Portal.NLS.cls – DAiMor

+0

不,我无法访问旧的实例。新实例报告“enu8”,这似乎是一个latin1语言环境... – Macuyiko

0

你可以从mgr目录发送你的cboot.log?
在我cboot.log

Start of Cache initialization at 02:51:00PM on Apr 7, 2012 
Cache for Windows (x86-64) 2012.2 (Build 549U) Sun Apr 1 2012 17:34:18 EDT 
Locale setting is rusw 
Source directory is c:\intersystems\ensemble12\mgr\utils\ 
相关问题