我試圖將下列有效載荷轉換爲可讀的字符串。 這是一個日誌,其中包含我想用來分析和處理的信息。將有效載荷從VARBINARY轉換爲SQL中的VARCHAR
這是有用消息:
0x234453006AD2C3005B71436C6173733A2061203A3A204173696D6F764661636164652E63616C6C28292072656672657368207B746F6B656E3D65303466663731622D336265342D343836632D623339622D3663633762396365646236397D10070D02040256
我知道,協議如下:
Header: 3 bytes
ID: 4 bytes
Length: 2 bytes
LogDebug: 1 byte
LogData: N
Timestamp: 6 bytes
CS: 1 byte
我試着使用:
CONVERT(VARCHAR(MAX), SUBSTRING(payload, 0, 3) + SUBSTRING(payload, 3, 4) + ...)
,但不能把它上班。我在SSMS文檔中看到,SUBSTRING只接受某些數據類型,例如字符,二進制,文本,ntext或圖像等。 我試圖
CONVERT(VARCHAR(MAX), (SUBSTRING(CONVERT(BINARY,Payload),0, 3)) + (SUBSTRING(CONVERT(BINARY,Payload),3, 4)))
很好,但沒有運氣:(
任何建議
編輯: 期望的記錄應該是這樣的:
000: ← 2016/07/13 00:04:02, (0x71)U2H.LOGDEBUG - Class: a :: AsimovFacade.call() refresh {token=e04ff71b-3be4-486c-b39b-6cc7b9cedb69}
我得到:
#DS
您是否收到任何錯誤消息? – jim
沒有錯誤信息,但輸出太短。我知道輸出應該是什麼。 –
發佈預期輸出樣本,得到錯誤的輸出結果 – Paolo