如何使用印地语参数从 SQL Server 存储过程中检索数据



如何使用印地语参数从 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

最新更新