2009-12-01 74 views
0

我应该存储unicode字符的DB2数据库有问题。连接使用JDBC建立。使用unicode的DB2数据库

如果我想将unicode字符串插入到数据库中,我该怎么办?

INSERT INTO my_table(id, string_field) VALUES(1, N'my unicode string'); 

INSERT INTO my_table(id, string_field) VALUES(1, 'my unicode string'); 

我不知道有没有用N个前缀或没有。对于大多数数据库来说,它在使用它时运行得非常好,但我对DB2不太确定。我还有一个问题,即我没有可以测试这些语句的DB2数据库。 :-(

非常感谢!

+1

仅供参考:Express-C版可能对您有用,用于测试。 – McDowell 2009-12-01 12:19:27

+0

感谢您的信息! – zlajo 2009-12-01 13:51:04

回答

1

constants(如DB2 9.7的)文档说这大约graphic strings

图形字符串常量指定由双字节字符的序列组成,并具有端部变长图形字符串一个单字节撇号('),前面是一个单字节的G或N.撇号之间的字符必须表示偶数个字节,并且图形字符串的长度不得超过16个字节。

+0

有趣的,不知道,但这样的气味就像一个“解决方法”,用于将unicode数据插入未配置为使用unicode的数据库/表中。我宁愿将数据库配置为使用unicode而不是搞乱SQL语句。 – BalusC 2009-12-01 13:11:03

+0

说实话,我不知道如何通过JDBC驱动程序和Java字符串表达式来隐式地使用UTF-16。这种支持看起来更像是使用八位字节的代码。这不会是我的第一选择,但我也不会得出结论 - 可能会有一些传统模式,海报需要与之合作。 – McDowell 2009-12-01 13:44:27

+0

我有一个关于这个陈述的问题:当使用这个符号时,我只能使用UCS-2,对吗?那么UTF-8编码的字符串呢? – zlajo 2009-12-01 13:53:33

1

我从来没有听说过这在DB2的背景。Google得知我,这是更MS SQL Server特定在DB2和所有其他像样的RDBMS你只需要确保。正在使用UTF-8字符集数据库时,通常指定的CREATE声明这里的DB2变体。

CREATE DATABASE my_db USING CODESET UTF-8; 

这应该是它在DB2方面你并不需要改变标准的SQL语句你也不需要担心Java,因为它在内部已经使用Unicode 。

0

通过DB2 DB的JDBC应用程序,在N'内包含unicode字符串常量。