将ntext / text转换为hex / binary / varbinary

时间:2015-03-13 14:19:40

标签: sql-server

如何在SQL服务器上获取此查询?它会导致错误: 这是MySQL版本

SELECT HEX(c1) FROM t1;

这个简单的例子工作:

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT CAST('example data' AS VARBINARY) AS Body2

但是这个sql dosnt工作。

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT TOP 10 [NewsID]
      ,[upTitle]
      ,[Title]
      ,[Summary]
      ,CAST(Body AS VARBINARY) AS Body2
      ,[LargePic]
      ,[PublishDate]
  FROM [Upgrade_News].[dbo].[News_News]

这给了我这个错误

Msg 529, Level 16, State 2, Line 6
Explicit conversion from data type ntext to varbinary is not allowed.
  1. 我想把hexed列作为值。我怎么能在SQL Server上这样做?
  2. SQL上HEX和UNHEX数据的正确功能是什么? 服务器?
  3. 我需要在select上将ntext转换为HEX数据。它不是整数或短字符串。

1 个答案:

答案 0 :(得分:7)

没有从ntext直接转换为varbinary,因此请先转换为nvarchar(max)

SELECT CAST(CAST(Body AS NVARCHAR(MAX)) AS VARBINARY) AS Body2

ntext已被SQL2005弃用。尽可能避免使用它。 https://msdn.microsoft.com/en-us/library/ms178158%28v=sql.90%29.aspx