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
なぜ今それが止まったのか、私は非常に混乱しています。私はこの同じ参照に完全に機能する他のエントリを持っています。
非常に紛らわしいです。