-2

この手順を修正する方法を教えてください??

現在、エラーが発生しています:

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

コード:

CREATE PROCEDURE SP_FILEUPLOAD
            @UID int,
            @APPCODE varchar(50) = NULL ,
            @APPEXPIRED datetime = NULL  ,
            @SIGNIMAGE image = NULL ,
            @SIGNFILE varbinary(MAX) = NULL ,
            @HEADUID int,
            @PRINCIPALFROM money,
            @PRINCIPALTO money,
            @EXCEPTIONUSER bit,
            @LastUpdate datetime
    AS 
        BEGIN 
    SET NOCOUNT ON

INSERT INTO APPUSERDTL
            (UID,
            APPCODE,
            APPEXPIRED,
            SIGNIMAGE, 
            SIGNFILE,
            HEADUID,
            PRINCIPALFROM,
            PRINCIPALTO,
            EXCEPTIONUSER,
            LastUpdate)
VALUES('@UID',
            '@APPCODE',
            '@APPEXPIRED',
            '@SIGNIMAGE',
            '@SIGNFILE',
            '@HEADUID',
            '@PRINCIPALFROM',
            '@PRINCIPALTO',
            '@EXCEPTIONUSER',
            '@LastUpdate')

    END 
    GO

以下はテーブル構造です

[dbo].[APPUSERDTL]( 
      [UID] [int] NOT NULL, 
      [APPCODE] [varchar](50) NULL, 
      [APPEXPIRED] [datetime] NULL, 
      [SIGNIMAGE] [image] NULL, 
      [SIGNFILE] [varbinary](max) NULL, 
      [HEADUID] [int] NULL, 
      [PRINCIPALFROM] [money] NOT NULL, 
      [PRINCIPALTO] [money] NOT NULL, 
      [EXCEPTIONUSER] [bit] NOT NULL, 
     [LastUpdate] [datetime] NOT NULL )
4

2 に答える 2

1

パラメータにvarchar値を 渡しているようです。@SIGNFILE

渡す値を確認してください

例えば。この問題を再現できます

declare @test varbinary(max)=''
select @test

アップデート

なぜ''ステートメントを挿入するために渡しているのですか? 引用符内で使用した場合と同様に、すべての値が考慮されvarcharます。引用符を削除して試してください

以下のようにできます

INSERT INTO APPUSERDTL
            (UID,
            APPCODE,
            APPEXPIRED,
            SIGNIMAGE, 
            SIGNFILE,
            HEADUID,
            PRINCIPALFROM,
            PRINCIPALTO,
            EXCEPTIONUSER,
            LastUpdate)
     VALUES(@UID,
            @APPCODE,
            @APPEXPIRED,
            @SIGNIMAGE,
            @SIGNFILE,
            @HEADUID,
            @PRINCIPALFROM,
            @PRINCIPALTO,
            @EXCEPTIONUSER,
            @LastUpdate)
于 2013-10-30T09:27:04.580 に答える