0
將varchar
轉換爲varbinary
時,我可以將其還原。例如:將NVARCHAR轉換爲VARBINARY時的問題
SELECT CAST('_A_Brand1[_1]A5_LP[_1].A5' AS VARBINARY)
,CAST('_A_Brand1[_1]A5_LP[_2].A5' AS VARBINARY);
給出兩個不同的輸出:
0x5F415F4272616E64315B5F315D41355F4C505B5F3 5D2E4135 0x5F415F4272616E64315B5F315D41355F4C505B5F3 5D2E4135
但如果我使用nvarchar
我得到相同的輸出:
SELECT CAST(N'_A_Brand1[_1]A5_LP[_1].A5' AS VARBINARY)
,CAST(N'_A_Brand1[_1]A5_LP[_2].A5' AS VARBINARY);
0x5F0041005F004200720061006E00640031005B005F0031005D0041003500 0x5F0041005F004200720061006E00640031005B005F0031005D0041003500
這是一個問題,因爲我以後就不能進行正確的操作:
SELECT CAST(CAST('_A_Brand1[_1]A5_LP[_1].A5' AS VARBINARY) AS VARCHAR(MAX))
,CAST(CAST('_A_Brand1[_1]A5_LP[_2].A5' AS VARBINARY) AS VARCHAR(MAX));
SELECT CAST(CAST(N'_A_Brand1[_1]A5_LP[_1].A5' AS VARBINARY) AS NVARCHAR(MAX))
,CAST(CAST(N'_A_Brand1[_1]A5_LP[_2].A5' AS VARBINARY) AS NVARCHAR(MAX));
首先是確定:
_A_Brand1[_1]A5_LP[_1].A5
_A_Brand1[_1]A5_LP[_2].A5
第二返回相同字符串(值丟失/切割):
_A_Brand1[_1]A5
_A_Brand1[_1]A5