2

我有一个我正在尝试解决的问题。我们有一个运行商业 ERP 系统的 SQL Server 2005。这意味着我们无法更改数据库结构,并且所有字符字段都是 CHAR 或 VARCHAR 而不是 Unicode 类型(NCHAR、NVARCHAR)。

我们还拥有多个基于国家/地区的 ERP 软件实例。每个国家/地区在同一数据库服务器上都有自己的数据库,这会导致基于正在运行的 ERP 软件实例的表名有所不同。例如,美国客户表称为 US_CUSTOMER,英国客户表称为 GB_CUSTOMER。我们创建了一个单独的数据库,它基本上用同义词反映了 ERP 系统表,然后是处理我们所有针对这些同义词的 SQL 事务的视图。这样做是为了使用 LINQ TO SQL。感谢您阅读本文:)

我们遇到的问题是我们现在正在为应用程序实施简体中文。在客户 ERP 系统中,他们为 ERP 系统设置代码页,以便 ERP 系统写入基表时,数据以多字节形式写入。我的问题是如何将这些多字节信息翻译回简体中文?我希望能够在数据库级别执行此操作,因为我有需要利用它的 Web 应用程序和 SSRS 报告。

有什么想法或方向吗?我认为我无法更改代码页,因为多个国家/地区正在使用相同的数据库服务器(尽管数据库不同)。

提前谢谢

4

2 回答 2

1

我们是说 2 个 varchar 字符用于存储 1 个 unicode 字符吗?

如果是这样,请尝试 CAST 到二进制到 nvarchar 等(或类似的东西)

否则,看看 COLLATE 子句来强制数据?

编辑:

CLR 函数可能是您使用 Remus 的 MultiByteToWideChar 建议的唯一选择

于 2010-01-05T20:53:16.080 回答
0

我们最终为此做的是编写一个可以从我们的 SQL 语句中调用的 CLR 函数。我们传入字符串和所需的代码页并返回转换后的字符串。表现不是我们所希望的,但它似乎是我们能找到的唯一途径。

于 2010-02-16T16:21:08.257 回答