Jac*_*ack 5 c# t-sql database sql-server base64
我从XML文件中获取了一个base 64字符串,我想将其插入到我的SQL Server数据库中.哪个字段类型在我的数据库中有字段?VARBINARY(MAX)?在插入数据库之前,是否必须将base 64字符串转换为另一种格式?
最好的祝福
Dan*_*llo 14
如果您打算按原样存储Base64字符串,则可以使用VARCHAR数据类型.Base64编码设计为仅使用7位ASCII字符.
但是,如果您希望以二进制格式存储数据,则需要使用VARBINARY数据类型并将Base64字符串转换为二进制.您可以使用XQuery功能(从SQL Server 2005开始)轻松地将值转换为VARBINARY,反之亦然.
将变量中的Base64值转换为VARBINARY:
declare @str varchar(20);
set @str = '3qAAAA==';
select cast(N'' as xml).value('xs:base64Binary(sql:variable("@str"))', 'varbinary(20)');
Run Code Online (Sandbox Code Playgroud)
将变量中的二进制值转换为Base64:
declare @bin varbinary(20);
set @bin = 0xDEA00000;
select cast(N'' as xml).value('xs:base64Binary(xs:hexBinary(sql:variable("@bin")))', 'varchar(20)');
Run Code Online (Sandbox Code Playgroud)
源(以及更多示例):从Base64转换为varbinary,反之亦然.
因为它是一个字符串而一个字符串是一个字符串是一个字符串,你应该能够将它放入一个VARCHAR(x)或VARCHAR(MAX)字段而没有任何问题.
"大小" VARCHAR(x)有一个最大值.长度为8000个字符,VARCHAR(MAX)最大值为2 GB(2**31-1字节).
| 归档时间: |
|
| 查看次数: |
21687 次 |
| 最近记录: |