2012-05-05 18 views
1

古いCACHE.DATデータベースをIntersystems Cache(2012.1.1 win32評価版)にロードしようとしています。私は名前空間とデータベースを作成することができました。私はいくつかのデータベーステーブルを照会することができます。Intersystems Cache予期しないエラーが発生しました:<WIDE CHAR>

はしかし、他のテーブルのために、私は次のエラーを取得する:

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

ドキュメントは、これは1つのバイト文字が期待されるところのマルチバイト文字が読まれることを意味していることを私に伝えます。私は、これは元のデータベースがUTF-16であったことを意味し、新しいインストールではUTF-8を使用している可能性があります。

私の質問です:データベースを変換するか、キャッシュを処理できるように設定するか、この問題を別の方法で処理する方法はありますか?

答えて

1

多分、元のデータベースがUnicodeのインストール で作成され、現在のインストール8ビット

Cachéは、1バイト文字が期待されたマルチバイト文字を読みます。

+0

の例で最初の行のための
。 Unicodeを必要としているかどうかを判断するためにCachéがインストール時に尋ねてきたのは知っていますが、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\ 
関連する問題