2016-10-14 164 views
0

我需要使用轉換二進制函數來更新列,但它會引發錯誤。將varchar(max)轉換爲varbinary(max)

這是我的查詢:

update DocumentOnline 
set FileData = CONVERT(VARBINARY(max), FileData, 0x255044462D312E340A25E2E3CFD30A322030206F626A0A3C3C2F4C656E6774682034392F46696C7465722F466C6174654465636F64653E3E73747265616D0A789C2BE4720AE1323653B03030530849E1720DE10AE42A54305430004208999CABA01F9166A8E092AF10C80500EAA209F20A656E6473747265616D0A656E646F626A0A342030206F626A0A3C3C2F5265736F75726365733C3C2F584F626A6563743C3C2F586631203120) 
where ClientId = '54528' and EndDate = '201607' 

,這是錯誤:

參數的數據類型VARBINARY(max)是用於轉換函數的參數3無效。

我是SQL初學者 - 我錯過了什麼?

+0

你正在使用哪個dbms? (使用產品特定的功能...) – jarlh

+0

@jarlh即時通訊使用SQL服務器 –

+0

你錯過了[文檔](https://msdn.microsoft.com/library/ms187928)。 'CONVERT'有三個參數,但你沒有正確使用它。 –

回答

0

你正在使用錯誤的語法CONVERT

https://msdn.microsoft.com/en-in/library/ms187928.aspx

-- Syntax for CONVERT: 
CONVERT (data_type [ (length) ] , expression [ , style ]) 

嘗試使用此

update DocumentOnline 
set FileData = CONVERT(VARBINARY(max), 0x255044462D312E340A25E2E3CFD30A322030206F626A0A3C3C2F4C656E6774682034392F46696C7465722F466C6174654465636F64653E3E73747265616D0A789C2BE4720AE1323653B03030530849E1720DE10AE42A54305430004208999CABA01F9166A8E092AF10C80500EAA209F20A656E6473747265616D0A656E646F626A0A342030206F626A0A3C3C2F5265736F75726365733C3C2F584F626A6563743C3C2F586631203120) 
where ClientId = '54528' and EndDate = '201607' 
+0

它的工作!大起來 –

0

如果FileData數據類型VARBINARY(MAX)只是用這樣的:

update DocumentOnline 
set FileData = 0x255044462D312E340A25E2E3CFD30A322030206F626A0A3C3C2F4C656E6774682034392F46696C7465722F466C6174654465636F64653E3E73747265616D0A789C2BE4720AE1323653B03030530849E1720DE10AE42A54305430004208999CABA01F9166A8E092AF10C80500EAA209F20A656E6473747265616D0A656E646F626A0A342030206F626A0A3C3C2F5265736F75726365733C3C2F584F626A6563743C3C2F586631203120 
where ClientId = '54528' and EndDate = '201607' 
相關問題