--==============================================
-- FUNCTION varbin2hexstr
-- 将 varbinary 类型的数据转换为 varchar 类型
--============================================== IF OBJECT_ID ('dbo.varbin2hexstr') IS NOT NULL
DROP FUNCTION dbo.varbin2hexstr
GO CREATE function varbin2hexstr(
@bin varbinary(8000)
)returns varchar(8000)
as
begin
declare @re varchar(8000),@i int
select @re='',@i=datalength(@bin)
while @i>0
select @re=substring('0123456789ABCDEF',substring(@bin,@i,1)/16+1,1)
+substring('0123456789ABCDEF',substring(@bin,@i,1)%16+1,1)
+@re
,@i=@i-1
-- return('0x'+@re)
return @re
end GO
--==============================================
-- FUNCTION hexstr2varbin
-- 将 varchar 类型的数据转换为 varbinary 类型
--============================================== IF OBJECT_ID ('dbo.hexstr2varbin') IS NOT NULL
DROP FUNCTION dbo.hexstr2varbin
GO CREATE function [dbo].[hexstr2varbin](
@char varchar(8000)
)returns varbinary(8000)
as
begin
declare @re varbinary(8000), @tempchar varchar(2),
@getchar varchar(1), @getint int, @n int, @totalint int,
@i int, @tempint int, @runNum int -- 字符串截取段数 select @tempchar='',@i=datalength(@char), @re=0x; if( @i>0)
begin
if ( @i%2 = 0) set @runNum= @i/2
else set @runNum= @i/2 + 1 while (@runNum > 0)
begin
if(@runNum = 1) set @tempchar = @char
else set @tempchar = substring(@char, (@runNum-1)*2,2) select @n=1,@totalint=0; -- 循环处理截取的每个字符串 (这里的字符串长度为2)
while @n < ( datalength(@tempchar) + 1 )
begin
set @getchar=substring(@tempchar,@n,1); -- 将字符转换为十六进制对应的数字
select @getint=case
when @getchar='a' then 10
when @getchar='b' then 11
when @getchar='c' then 12
when @getchar='d' then 13
when @getchar='e' then 14
when @getchar='f' then 15
else convert(int,@getchar) end; set @tempint=@getint*power(16,datalength(@tempchar)-@n)
set @totalint = @totalint + @tempint
set @n=@n+1
end set @re=convert(varbinary(1),@totalint) + @re;
set @runNum=@runNum-1;
end
end
return @re end
GO

SQL varbinary varchar 互转的更多相关文章

  1. Sql语句varchar或nvarchar字段条件前加N的性能差异

    Sql语句varchar或nvarchar字段条件前加N的话是对这个字段进行Unicode编码, 这样做的目的是避免在这种字段中存入俄文.韩文.日文的情况下有可能会出现乱码. 但这样做也会有性能问题, ...

  2. sql中varchar(n),nvarchar(n) 长度性能及所占空间分析

    sql中varchar(n),nvarchar(n) 长度性能及所占空间分析 1.varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. ...

  3. 解决SQL将varchar值转换为数据类型为int的列时发生语法错误

    今天遇到一个这样的错误,具体的报错情况如下 解决的方案如下. 数据库MSSQL在比较大小时,出错提示:“将 varchar 值 '24.5' 转换为数据类型为 int 的列时发生语法错!”分析数据库设 ...

  4. SQL中varchar和nvarchar的基本介绍及其区别

    SQL中varchar和nvarchar的基本介绍及其区别 varchar(n) 长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储 ...

  5. sql中varchar(max),取代text类型

    SQL Server 2005之后版本:请使用 varchar(max).nvarchar(max) 和 varbinary(max) 数据类型,而不要使用 text.ntext 和 image 数据 ...

  6. [转] sql数据类型 varchar与nvarchar的区别

    SQL Server提供两种数据类型来存储字符信息.在如何在SQL Server或应用程序中使用方面,这两种数据类型大致是一样的.差别在于nvarchar是用于存储处理数据库图表中多语言数据的Unic ...

  7. sql server varchar和nvarchar的区别

    一.前言 在了解varchar 和nvarchar之前咱们先了解一下这些词的字面和常用意思,以方便我们更好的使用: SQL SERVER中生成的语句中,字符串前加N.N 前缀必须是大写字母.是Unic ...

  8. SQL Server Varchar 中文乱码问题与使用SQL Server Management Studio管理软件查询出来的字段限制

    问题:不管是用varchar 还是nvarchar,插入记录为中文时,都会显示乱码?? 即使建表时指明了某个字段的语言也没用 COLLATE Chinese_PRC_CS_AS_WS 原因:可能是安装 ...

  9. SQL中varchar和nvarchar的区别

    varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储大小为输入数据的字节的实际长度,而不是 n 个字节. nvar ...

随机推荐

  1. MySQL、MongoDB、Redis 数据库之间的区别

    NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路. M ...

  2. 饮冰三年-人工智能-linux-04 vim编辑器

    vim的三种模式:命令行模式.编辑模式.扩展模式 1:命令行模式下常见的操作 删除 a):dd 删除光标所在当前行 b):ndd   删除光标所在当前行后的n行 复制 c):yy 复制光标所在当前行 ...

  3. 变相实现textarea文本域

    效果图: html: <div> <form action=""> <div class="ta-div" contentedit ...

  4. 宿主进程 [*.vshost.exe] & [*.vshost.exe.config]

    宿主进程 [*.vshost.exe] & [*.vshost.exe.config] pdb文件: 英文全称:Program Database File 中文全称:程序数据库 文件 Debu ...

  5. 各厂商服务器存储默认管理口登录信息(默认IP、用户名、密码)收集

    666:https://blog.csdn.net/xiezuoyong/article/details/84997917

  6. zookeeper 学习 状态机复制的共识算法

    https://www.youtube.com/watch?v=BhosKsE8up8 state machine replication 的 共识(consensus) 算法 根据CAP理论,一个分 ...

  7. ES6中const、let与var的对比详解

    对比 声明方式 变量提升 作用域 初始值 重复定义const 否   块级 需要 不允许let   否     块级 不需要 不允许var 是    函数级 不需要 允许 变量提升:const 和 l ...

  8. 山寨版 WP8.1 Cortana 启动 PC

    8.1 dev preview 发布以来 Cortana 很受关注 前一段看到有视频演示用 Cortana 来启动 PC 看视频也是启动第三方应用实现的,简单来弄其实就是个语音启动应用 + 网络唤醒么 ...

  9. 部署Asp.net core & Nginx,通过nginx转发

    部署Asp.net core & Nginx,通过nginx转发 CentOS 7 x64 1.vs2017 建立Asp.net core项目,并发布到目录 2.通过FTP工具,将程序copy ...

  10. 064 SparkStream与kafka的集成,主要是编程

    这里面包含了如何在kafka+sparkStreaming集成后的开发,也包含了一部分的优化. 一:说明 1.官网 指导网址:http://spark.apache.org/docs/1.6.1/st ...