【问题标题】:how convert varbinary(image) to ntext in sql and sqllite如何在 sql 和 sqlite 中将 varbinary(image) 转换为 ntext
【发布时间】:2018-01-25 09:07:57
【问题描述】:

如何在 SQL 和 SQLite 中将 varbinary(image) 转换为 ntext

我想将数据类型varbinary 转换为ntext

CAST(NEW.[PhotoContent] AS NTEXT)

但我得到一个错误:

不允许从数据类型 varbinary(max) 到 ntext 的显式转换。

如何将这两种类型结合在一起?

【问题讨论】:

  • 你能详细说明你为什么要这样做吗?
  • ntexttextimage 数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)varchar(max)varbinary(max)See details here
  • 你为什么还要尝试呢?您希望在该 ntext 中看到什么?
  • @ZoharPeled 因为我想通过 Jason 将图像传输到 Android
  • 我对android开发知之甚少,但使用文本传递二进制数据似乎不合理。我确信有一个更好的解决方案,它不涉及将二进制数据转换为文本。

标签: sql sql-server sqlite


【解决方案1】:
   Create function [dbo].[fn_HexToStr](@hex varbinary(Max))
        returns varchar(Max)
           as
          begin
            declare 
            @len int,
            @counter int,
            @res varchar(Max),
            @string char(16),
            @byte binary(1)
            set @string = '0123456789ABCDEF'
            set @res = '0x'
            set @len = datalength(@hex)
            set @counter = 1
            while(@counter <= @len)
            begin
            set @byte = substring(@hex, @counter, 1)
            set @res = @res + substring(@string, 1 + @byte/16, 1) + 
            substring(@string, 1 + @byte - (@byte/16)*16, 1)set @counter = @counter + 1
            end
           set @res=substring(@res,3,len(@res))
           return @res
    end

【讨论】:

    猜你喜欢
    • 2015-08-06
    • 2010-09-08
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多