5

値を持つテーブルを用意する

report nvarchar(max) not null
description nvarchar(max) 

ストアド プロシージャでは、テーブルから値を選択し、それを varbinary max に変換します。私は選択します:

select 
    CONVERT(varbinary(max), [report]) as [report], 
    ISNULL(CONVERT(varbinary(max), [description]), '') as [description]
from myTbl

しかし、私はエラーが発生します:

データ型 varchar から varbinary(max) への暗黙的な変換は許可されていません。CONVERT 関数を使用して、このクエリを実行します。

この問題を解決するのを手伝ってください

4

1 に答える 1

12

description を に変換しvarbinaryた後、null 値を にキャストしようとしたため、エラーが発生していますvarcharISNULL内部に移動するCONVERTか、null の場合は変換値をバイナリ値に変更するだけです。

CONVERT の ISNULL

SELECT 
    CONVERT(varbinary(MAX), report), 
    CONVERT(varbinary(max), ISNULL([description], '')) as [description]
FROM myTbl

適切な ISNULL 値

SELECT 
    CONVERT(varbinary(MAX), report), 
    ISNULL(CONVERT(varbinary(max), [description]), 0x) as [description]
FROM myTbl

0xdescription が null の場合、両方のバージョンで同じ出力が生成されます。

于 2013-08-19T11:23:52.820 に答える