我想将日文字符传递给SQL Server中的存储过程。字符被转换为????在执行期间,因此我得到incoreect结果。将日文字符传递给SQL Server存储过程
我该如何传递这些字符?我尝试使用nvarchar
作为它接受的Unicode,但没有运气。如果我不使用存储过程并在我的应用程序中动态构建SQL查询字符串,事情就会正常工作。 请帮助
更新
declare @string as nvarchar(1000)
SET @string = @keyword
SELECT * FROM TABLE where Title like @string
调用使用
EXEC @return_value = StoredProcName
@keyword = N'Japanese Word'
更新2
我想补充如果那帮助下。构建查询动态工作。因此,如果在你的应用程序中,你写了 sql =“select * from TABLE where Title like'”+ [JapaneseWord] +“'”;它的工作原理是 。我无法确定其中的Unicode失败的存储过程
解决方案
NVARCHAR是问题的关键。如果有人有兴趣的是知道如何使用它来形成一个自由文本搜索字符串,在这里你去
declare @string as nvarchar(100) set @string = 'FORMSOF(INLFLECTIONAL,"'[email protected]+'"))'
然后在查询中使用它。像
select * from TABLE as TEMP INNERJOIN CONTAINSTABLE(#,#,@string) ......
请参阅MSDN或相关的文档
是否可以添加TSQL在您的存储过程?它会像发送它的变量不支持unicode一样简单吗?或者,也许变量返回结果? – 2011-05-11 20:39:09
您的存储过程的输入参数是否为nvarchar类型的输入参数,并且您确定它在过程中的任何位置没有被(隐式)转换为非Unicode(varchar)? – Triynko 2011-05-11 20:41:12
所以 - 再次 - **什么**不起作用?你没有收回任何东西?你回来了错误的信息?你的表结构是什么样的?您的表NVARCHAR中的“标题”列也是? – 2011-05-11 21:05:03