node.js ibm_db如何设置对db2数据库的查询的编码

时间:2019-12-04 20:07:59

标签: node.js db2 db2-luw

是否可以更改/设置编码node.js ibm_db驱动程序的查询?

我在Windows 2008服务器上安装了db2 9.7数据库。数据库territory设置为RUcodepagecodeset设置为1251

我在Windows 10客户端计算机上安装了带有ibm_db软件包的node.js应用。

如果在客户端计算机上将db2codepage设置为1251,则数据是不可读的,就像这样。

如果在客户端计算机上将db2codepage设置为1208,我可以通过选择查询接收可读的西里尔字母数据。

但是,如果我尝试使用西里尔文的参数进行查询,则查询不会返回任何数据。

例如:

select * from mytable where name = 'John';-一切正常

select * from mytable where name = 'Иван';-不返回任何数据,但我知道表中有一些记录,在“名称”字段中具有“Иван”值。来自dbvisualiser的相同查询或类似工具将按预期返回数据。

使用db2mon可以看到查询中的西里尔参数具有错误的编码: select * from mytable where name = 'Иван'

所以,我认为问题出在node.js的ibm_db驱动程序中。

关于如何使节点ibm_db驱动程序正常工作的任何想法?

我尝试了 db2codepage db2country lang 环境变量的不同组合,不同的 codeSet 选项值使用 ibmdb.openSync 函数建立数据库连接。

我也尝试使用此answear手动将查询字符串编码到Windows-1251,但没有成功。

更新:

客户端Windows 10系统的

db2level命令输出(自动翻译成英文):

DB21085I This instance or installation (instance name, if any: "") uses the "32" bit version and DB2 code release "SQL0907B" with level identifier "080C0107".
Information elements are "DB2 v9.7.1100.352", "s150922", "IP23938", and FixPack "11".
The product is installed in "C:\PROGRA~2\IBM\IBMDAT~1", the DB2 copy name is "IBM Data Server Driver For ODBC and CLI".

0 个答案:

没有答案