繁体   English   中英

不允许从数据类型varchar到varbinary(max)的隐式转换。 使用CONVERT

[英]Implicit conversion from data type varchar to varbinary(max) is not allowed. Use the CONVERT

我收到以下错误:

“不允许从数据类型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”附近的语法不正确。

SQL-服务器

SQL-Server具有以下Convert语法。

CONVERT(data_type [(length)],表达式[,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

Declare @vb as varbinary(max)
Set @vb =  CONVERT(varbinary(max), 'TEST_DATA', 0)
select @vb

MySQL的

根据转换文档,您的方法签名不正确。

CONVERT具有以下MySQL语法:

CONVERT(expr,type),CONVERT(expr USING transcoding_name)


调用存储过程使用MySQL中的Call

CALL sp_name([parameter [,...]])

用法的一个例子是:

mysql> SET @increment = 10;
mysql> CALL p(@version, @increment);
mysql> SELECT @version, @increment;
+--------------+------------+
| @version     | @increment |
+--------------+------------+
| 5.5.3-m3-log |         11 |
+--------------+------------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM