2014-04-22 62 views
1

我有BINARY類型的變量,我這個值發送給另一個函數來創建,我想要連接該值的動態查詢,在這裏所面臨的無差錯串聯二進制值NVARCHAR字符串

是我的代碼 -

DECLARE @Bin BINARY =0x000002A2000001BC0001 
     ,@SQL NVARCHAR(MAX) 
SELECT @SQL = 'SELECT ' + @Bin + 'FROM TEST' 

SELECT @SQL 

我收到以下錯誤,當我運行上面的代碼 -

消息402,級別16,狀態1,第3行 的數據類型爲varchar和二進制都在增加操作符不兼容。

我需要連接,我不希望二進制轉換爲字符串,而是值本身。我已經廣泛搜索,並沒有得到正確的結果。我最接近的是這個鏈接http://www.sqlservercentral.com/Forums/Topic613703-338-1.aspx

如何做到這一點的任何幫助?我也嘗試過CAST和CONVERT,但無濟於事。

回答

1

請將代碼更改爲以下內容,並檢查希望這有助於。

SQL:

DECLARE @Bin BINARY(10)=0x000002A2000001BC0001,@SQL NVARCHAR(MAX) 
SELECT @SQL = 'SELECT ' + CONVERT(nvarchar(max), @Bin, 1) + ' FROM TEST' 
SELECT @SQL 

這返回查詢中的二進制文件的原始值。

+0

試着把代碼片段放在一個代碼塊中,比如'code' –

+0

@ pc-shooter:你能否給我提供一個例子。我會感謝它。 –

+1

我的意思是,當您在這裏添加問題/答案時,嘗試格式化代碼塊,使用編輯器頂部的括號按鈕。這與你自己回答無關;-) –

相關問題