0

Web フォームから呼び出されるストアド プロシージャがあります。今日まで、すべてがうまく機能しています。突然、次のメッセージが表示されるようになりました。

varchar 値 '0A' をデータ型 int に変換するときに変換に失敗しました。

この時点までプログラムは正常に実行されていたのに、なぜこのメッセージが表示されるのかわかりません。

ここにストアドプロシージャがあります

USE [InvoiceSHC]
GO
/****** Object:  StoredProcedure [dbo].[UpdateSHCInvoice3]    Script Date: 10/01/2013 09:59:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      Tim Vavra
-- Create date: 6/7/2013
-- Description: This is an update to UpdateSHCInvoice to account for the configuration alt value 
-- when updating simple and complex changes.  This process will also account for whether an entry
-- is correcting a previously incorrect entry.  
-- =============================================
ALTER PROCEDURE [dbo].[UpdateSHCInvoice3] 
    -- Add the parameters for the stored procedure here
    (@Ref nvarchar(50), 
    @PhaseName nvarchar(50),
    @PageType nvarchar(50),
    @Page nvarchar(50),
    @Config nvarchar(50),
    @ChngType nvarchar(50),
    @Correction varchar(10),
    @UserName nvarchar(100),
    @Timestamp datetime


)

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    declare @conval decimal(2,0)
    set @conval = 0

    -- Insert statements for procedure here
    insert into MasterData3 ([Ad],[Phase],[Page Type] , [Page], [Config] , [Change Type],[UserName], [Timestamp], [correction], [conval]) 
                    values(@Ref, @PhaseName , @PageType , @Page , @Config ,@ChngType, @UserName, @Timestamp, @Correction, @conval)

     update MasterData3
        set [page_equivalent]  =
        Case
            When [Page] like '[0-9]' then LEFT([Page],1) 
            When[Page] like '[0-9]-%' then LEFT([Page],1)+(cast(RIGHT([page],2)as int)*.01)+.26 
            When [Page] like '[0-9][A-Z]' then left([Page],1)+((ASCII(convert(varchar,(RIGHT([Page],1))))-64)*.01) 
            When [Page] like '[0-9][A-Z]-%' then left([Page],1)+((ASCII(convert(varchar,(substring([Page],2,1))))-64)*.01)+ (cast(RIGHT([page],2)as int)*.001)
            When [Page] like '[0-9][0-9]' then LEFT([Page],2)
            When[Page] like '[0-9][0-9]-%' then LEFT([Page],2)+(cast(RIGHT([page],2)as int)*.01)+.26 
            When [Page] like '[0-9][0-9][A-Z]' then left([Page],2)+((ASCII(convert(varchar,(RIGHT([Page],1))))-64)*.01) 
            When [Page] like '[0-9][0-9][A-Z]-%' then left([Page],2)+((ASCII(convert(varchar,(substring([Page],3,1))))-64)*.01)+ (cast(RIGHT([page],2)as int)*.001)

        end

    update MasterData3
        set conval = -1 where correction = '1' or correction = 'True'
    update MasterData3
        set conval = 1 where correction = '0' or correction = 'False'
/*  update MasterData3
        set correction = 'False' where correction = '0'
    update MasterData3
        set correction = 'True' where correction = '1'
*/      

END

ここでの参照は、ストアド プロシージャの変数に関連する値です。

@Ref 465612
@PhaseName Release
@Page 09D
@PageType Lip Tab Alt
@Config 17897
@ChngType Version
@Correction False
@UserName tvavra
@Timestamp 10/1/13

なぜ今それが止まったのか、私は非常に混乱しています。私はこの同じ参照に完全に機能する他のエントリを持っています。

非常に紛らわしいです。

4

0 に答える 0