weixin_38079125 2017-03-27 01:59 采纳率: 0%
浏览 890

SQL Server函数问题,执行结果很奇怪。

Create function [dbo].fn_hexStrToChar)
returns nvarchar
begin
declare
@str nvarchar(255),
@len int,
@bit int
set @str = ''
set @len = LEN(@hexstr)
set @bit = 3
while @bit < @len
begin
set @str = @str + nchar([dbo].hextoint))
set @bit = @bit + 6
end
return @str
end

该函数作用是传入一个16进制的字符串,返回与之对应的Unicode字符串
比如:select dbo.fn_hexStrToChar('\u4e2d\u6587\u8f6c\u6362')
执行后应返回“中文转换”。
但是只返回“中”,测试过任何输入都只返回第一个字符。
请教各位高手指点。
住:[dbo].[hextoint]这是另一个函数,作用是单个16进制字符转换。

  • 写回答

1条回答 默认 最新

  • Tiger_Zhao 2017-03-28 08:53
    关注

    returns nvarchar 没有长度。

    SQL Server 联机丛书:

    nchar 和 nvarchar (Transact-SQL)

    如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站