在Transact-SQL语句中如何用常量来表示二进制形式的数据?
2008-04-26 22:23
609 查看
二进制数据可能是图像、声音或任何其他数据。如果我们能够把这些二进制以常量的形式表示,我们就可以直接用Transcat-SQL语句来插入和更新数据表中的这些数据。
其实,Transcat-SQL已经给我们提供了方法,那就是二进制常量格式。这个格式是以“0x”开头,后面跟若干十六进制数字,每个字节用两位十六进制数来表示。因此,你完全可以将那些图像声音数据转换成这种二进制常量格式,然后用于INSERT或UPDATE语句中。
不过,这样的二进制常量将很长很长。这样一来SQL语句很难翻看,而且在某些行的长度有限制的编辑器中还会出问题。
那么,又没有给二进制常量折行的办法呢?
很遗憾,我查遍Transact-SQL的联机帮助,搜遍了网络,都没有答案。
难道就真的没办法?
路从来都是有人走过以后才能成其为路。也许前人曾经走过,而后人不知道。甚至,路本来就在那里,而你敢不敢走?
于是,冒险开始:
我将那个长长的二进制常量强行折断,执行,出错...
在前面一行加“_”,VB的折行符号,出错...
换成“/n”,C,字符串的折行符号,出错...
用引号引起来,出错...
换双引号,出错...
...,出错...
...,出错...
...,出错...
前面一行就加“/”,成功!
我有点不敢相信,再试,成功!
稍微惊喜之后,我立刻保持冷静:插入的数据是否正确呢?
立即,编写程序验证,完全正确!
原来“/”是二进制常量的换行符,路就在那儿!
李战.深圳2004-10-14
其实,Transcat-SQL已经给我们提供了方法,那就是二进制常量格式。这个格式是以“0x”开头,后面跟若干十六进制数字,每个字节用两位十六进制数来表示。因此,你完全可以将那些图像声音数据转换成这种二进制常量格式,然后用于INSERT或UPDATE语句中。
不过,这样的二进制常量将很长很长。这样一来SQL语句很难翻看,而且在某些行的长度有限制的编辑器中还会出问题。
那么,又没有给二进制常量折行的办法呢?
很遗憾,我查遍Transact-SQL的联机帮助,搜遍了网络,都没有答案。
难道就真的没办法?
路从来都是有人走过以后才能成其为路。也许前人曾经走过,而后人不知道。甚至,路本来就在那里,而你敢不敢走?
于是,冒险开始:
我将那个长长的二进制常量强行折断,执行,出错...
在前面一行加“_”,VB的折行符号,出错...
换成“/n”,C,字符串的折行符号,出错...
用引号引起来,出错...
换双引号,出错...
...,出错...
...,出错...
...,出错...
前面一行就加“/”,成功!
我有点不敢相信,再试,成功!
稍微惊喜之后,我立刻保持冷静:插入的数据是否正确呢?
立即,编写程序验证,完全正确!
原来“/”是二进制常量的换行符,路就在那儿!
李战.深圳2004-10-14
相关文章推荐
- 在Transact-SQL语句中如何用常量来表示二进制形式的数据?
- SQL语句中如何把文件以二进制数组形式存入数据库
- delphi 中如何执行SqlParameter形式的SQL语句
- 在SQL 2008中总是出现问题:执行Transact-SQL语句或批处理时发生异常。如何解决?
- Sqoop1.4.4使用SQL语句形式将MySQL数据库表中数据导入到HDFS中
- 统计数据方面的Transact-SQL查询语句
- 如何用sql语句查询和删除表中重复数据
- Mysql如何批量删除具有相同表前缀的数据表(纯SQL语句)
- 如何将sqlserver表中的数据导出sql语句或生成insert into语句
- 如何用SQL语句查询Excel数据?
- 如何将sqlserver表中的数据导出sql语句或生成insert into语句【转载】
- 用PL/SQL把oracle数据库表里的数据导出成insert语句的形式
- 一个表的两个字段具有相同的类型。如何仅用SQL语句交换这两列的数据?
- 如何用SQL语句查询Excel数据?
- zencart如何清空商品演示数据和没有商品数据的sql执行语句
- 如何随机从数据库表中抽一条数据的SQL语句
- sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID
- 如何往有自增标识字段的表插入数据时,同时给自增标识字段插入值呢,在Inset Into语句前后加上SQL语句:SET IDENTITY_INSERT TableName ON和SET IDENTITY_INSERT TableName OFF
- Transact-SQL 示例 - 如何获取一个变量的数据类型