如何使用印地语参数从 SQL Server 存储过程检索数据?
我试过这样:
declare @A nvarchar (max), @b nvarchar(max), @c nvarchar(max)
set @b = N'नईम '
print @b
但是使用@b
作为参数,那么它将起作用:
declare @A nvarchar (max),@b nvarchar(max),@c nvarchar(max)
set @b = 'नईम '
print @b
则未找到结果
像在 sp 中一样传递印地语参数:
[Up_searchbyperameter] 35,62,0,'नाम'
请给我任何解决方案
在存储过程中,有一个参数@datavalue
包含印地语单词,但是通过使用存储过程,我无法检索印地语数据
请帮忙...
我不确定我是否完全理解,但看起来问题之一是当您需要使用 nvarchar 文字时,您正在使用 varchar 文字。
如果运行以下命令,则可以看到问题:
SELECT 'नाम' "A",
N'नाम' "B",
cast('नाम' as nvarchar(10)) "C"
您应该得到以下结果:
A B C
--- --- ---
??? नाम ???
查看 A 列和 C 列如何成为未知字符? 那是因为它们是作为 varchar 文字而不是 nvarchar 文字输入的。 印地语字符在 varchar 字段中无效,因此它们会转换为问号。
所以,如果我明白你在问什么,我认为你需要使用:
declare @A nvarchar (max), @b nvarchar(max), @c nvarchar(max)
set @b = N'नईम'
exec [Up_searchbyperameter] 35,62,0,@b