2016-05-12 34 views
0

CONVERTを使用します。データ型varcharからvarbinary(max)への暗黙的な変換は許可されていません。私は次のエラーを取得しています

"Implicit conversion from data type varchar to varbinary(max) is not allowed. Use the CONVERT function to run this query."

注:

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 

@transientCartDatavarbinary(max)

としてクエリを定義しているvarbinary(max)

@savedCartDataとして定義されます 私は@transientCartData = CONVERT(varbinary, 'TEST_DATA', 1)を使用しようとしていますとき

はその後、私はこのエラーを取得しています:

Incorrect syntax near the keyword 'CONVERT'.

+0

EXEC [ECOMM] [expiry_save_cart2_v1] ID @ = 80094、 @ lastUpdated = '2016年5月11日午後02時23分42秒。637' 、 transientCartExpiryIntervalInMin @ = '45' 、 SESSION_ID @ = '5C632166-D7D6-4F51-A87F-EED41376EEA7'、 バージョン@ = 'TEST_VERSION'、associated_slots = 'ヌル' @、 ACCOUNT_ID @ = 'TEST_ACCOUNT_ID'クッキー= 'ヌル' @ 、DATA2 = 'NULL' @ savedCartData = 'TEST_DATA'、 @ transientCartData = 'TEST_DATA'、 @ 、@ = is_pricing_needed '1'、savedCartExpiryIntervalInDays = '14' @ 、 @persistentCartExpiryIntervalInDays = '1'、 @ cart_type = 'PERSISTENT'、 @ customerAccountId = TEST_ACCOUNT_ID – sam

+0

実際の質問にコードを投稿してください。 –

+0

このエラーはかなりわかりやすいものです。あなたは 'VARCHAR'をバイナリBLOBに変換するロジックについて私たちに教えてくれますか? –

答えて

0

SQL-Serverの

SQL-ServerはConvertのため、次の構文を持っています。

CONVERT (data_type [ (length) ] , expression [ , style ])

あなたのコードは、がとして設定されているスタイルに起因する障害が発生しています。

If the data_type is a binary type, the expression must be a character expression. The expression must be composed of an even number of hexadecimal digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, a, b, c, d, e, f). ...

あなたは(デフォルト)に設定する必要があります。 documentation for Convertあなたのメソッドのシグネチャによる0x544553545F44415441

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

MySQLの

を生成

Translates ASCII characters to binary bytes or binary bytes to ASCII characters...

例変換の使用は、間違っています。


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

は、ストアドプロシージャは、MySQLでCallを使用して呼び出す:

CONVERTは、次のMySQLの構文があります。

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 | 
+--------------+------------+ 
+0

まだ動作していません:( – sam

+0

'CONVERT( 'TEST_DATA'、binary(10))'を自分で最初に試してください – mikek3332002

+0

execストアのprocクエリにコンサート関数を書くことは可能ですか?以下は私の更新クエリ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' 、バージョン= @ 'TEST_VERSION'、associated_slotsの= @ 'NULL'、 ACCOUNT_ID @ = 'TEST_ACCOUNT_ID'、クッキー= @ 'ヌルTEST_DATA'、 transientCartData = CONVERT(@ ' '、バイナリ(10))、 @ savedCartData = CONVERT(' TEST_DATA '、バイナリ(10))、 @ data2 = 'NULL'、 – sam

関連する問題