我收到以下错误:
“从数据类型varchar到varbinary(max)的隐式转换不是 允许。使用CONVERT函数运行此查询。“
注意:
@transientCartData
定义为varbinary(max)
@savedCartData
定义为varbinary(max)
查询:
exec [ecomm].[expiry_save_cart2_v1]
@id=80094,
@lastUpdated='2016-05-11 14:23:42.637',
@transientCartExpiryIntervalInMin='45',
@session_id='5C632166-D7D6-4F51-A87F-EED41376EEA7',
@version='TEST_VERSION',
@associated_slots='Null',
@account_id='TEST_ACCOUNT_ID',
@cookie='Null',
@transientCartData= 'TEST_DATA',
@savedCartData= 'TEST_DATA',
@data2='NULL',
@is_pricing_needed='1',
@savedCartExpiryIntervalInDays='14',
@persistentCartExpiryIntervalInDays='1',
@cart_type='PERSISTENT',
@customerAccountId=TEST_ACCOUNT_ID
然后当我尝试使用@transientCartData = CONVERT(varbinary, 'TEST_DATA', 1)
时,我收到此错误:
关键字“CONVERT”附近的语法不正确。
答案 0 :(得分:0)
SQL-Server具有Convert的以下语法。
CONVERT(data_type [(length)],expression [,style])
由于样式设置为 1 ,您的代码失败。
如果data_type是二进制类型,则表达式必须是字符表达式。表达式必须由偶数个十六进制数字组成(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,a,b,c ,d,e,f)。 ...
您需要将其设置为 0 (默认值)。
将ASCII字符转换为二进制字节或二进制字节转换为ASCII字符......
示例转换用法,产生 0x544553545F44415441
__init__
根据documentation for Convert您的方法签名不正确。
CONVERT具有以下MySQL语法:
CONVERT(expr,type),CONVERT(expr USING transcoding_name)
调用存储过程在MySQL中使用Call。
CALL sp_name([parameter [,...]])
用法的一个例子是:
Declare @vb as varbinary(max)
Set @vb = CONVERT(varbinary(max), 'TEST_DATA', 0)
select @vb