iT邦幫忙

0

如何依照資料實際長度去定義變數型態的長度

  • 分享至 

  • xImage

我用一個變數值@data接binary data,並想要依照此資料的實際長度去定義變數型態的長度,但在嘗試以下語法會有錯誤訊息,若不能定義@datavarbinary(max),是否意味著只能處理最多varbinary(4000)的限制呢?但實際上binary data可能是很長的,不知道可以怎麼調整呢?

	declare @data varbinary(max)=0x4100410041002E0050004E004700
    
    //error messagr : 接近 '@i' 之處的語法不正確
	declare @i int=@data.DataLength
    
    //error messagr : 無法在 varbinary(max) 上呼叫方法。
	select @data.DataLength
    
    //想要依照此資料的實際長度去定義變數型態的長度
	declare @newData varbinary(@i)
varbinary(max) 要超過 8000 位元組,8000以下用 varbinary(n) ,N的範圍最大就是 8000,至於樓主寫4000,那應該是用不到varbinary(max) 的,
還有DATALENGTH(<fieldname>)將適用於varbinary(max)
anniecat iT邦新手 3 級 ‧ 2020-01-17 11:09:06 檢舉
窮嘶發發發,對,後來在找更多資料時有發現,其實最多是8000
請問 還有DATALENGTH(<fieldname>)將適用於varbinary(max)
這句話是什麼意思呢?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
小魚
iT邦大師 1 級 ‧ 2020-01-14 11:23:03

SQL應該會有長度限制,
太長的資料也會造成SQL讀取上的負擔,
如果太長的話就存成檔案吧.

anniecat iT邦新手 3 級 ‧ 2020-01-17 11:10:59 檢舉

我這邊在處理存成檔案,它其實就是binary data,於是當我想要用varbinary(max)接這個值,並將它計算實際長度時,就會有問題了...

小魚 iT邦大師 1 級 ‧ 2020-01-17 12:05:44 檢舉

我意思是說實體的檔案存在Server,
一般好像不建議太大的資料料放在DB.

0
一級屠豬士
iT邦大師 1 級 ‧ 2020-01-14 15:23:56

BLOB (Binary Large OBject)

yves1990 iT邦新手 5 級 ‧ 2020-01-15 10:20:25 檢舉

AKB 48 不知道哪個團員比較推薦呢

天氣冷,吃火鍋吧.
https://ithelp.ithome.com.tw/upload/images/20200115/20050647684WLGwLeR.jpg

anniecat iT邦新手 3 級 ‧ 2020-01-17 11:11:12 檢舉

什、什麼意思...?

我要發表回答

立即登入回答