我有一个关于向 SQL Server 2008 R2 插入字符串的问题。当我尝试插入带有一些国家字母的字符串时,我收到“?”反而。
我知道在字符串文字的开头添加 N
可以解决这个问题,但我使用的是 JDBC 准备语句,如下所示:
INSERT INTO MyTable(col1, col2) VALUES (?,?);
我的问题是:如何添加这个“N”字母?我应该做这样的事情吗?
INSERT INTO MyTable(col1, col2) VALUES (N?,N?);
老实说,我不相信,因为这根本不起作用。
最佳答案
根据@a_horse_with_no_name 和@gofr1 的评论,有 2 种解决方案:
更改
sendStringParametersAsUnicode
- 这导致所有字符串都将被视为“N”字符串(这是全局更改)使用
PreparedStatement.setNString()
而不是setString()
- 这是“本地”更改。
两者都有效 - 使用更适合您的需求:)
关于java - SQL Server Nvarchar 和 Java 准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38654672/