簡體   English   中英

在我的 SQL Server 存儲過程中將數據類型 varchar 轉換為數字時出錯

[英]Error converting data type varchar to numeric in my SQL Server stored procedure

我寫了這個存儲過程並試圖檢索數據。 但我收到此錯誤:

消息 8114,級別 16,狀態 5,過程 spMobileOperationsNew,第 0 行 [批處理開始第 0 行]
將數據類型 varchar 轉換為數字時出錯。

你能幫我解決這個問題嗎?

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[spMobileOperationsNew]
    @action AS nvarchar(50),
    @territorycode nvarchar(10) = '',
    @disYear  AS int = '',
    @disMonth AS nvarchar(10) = '',
    @territoryTarget AS decimal(18, 2) = '',
    @terDiscRate AS decimal(5, 2) = '',
    @maxDiscRate AS decimal(5, 2) = '',
    @minBill AS decimal(18, 2) = '',
    @allocateBudget AS decimal(18, 2) = '',
    @actualValue AS decimal(18, 2) = '',
    @actDiscValue AS decimal(18, 2) = '',
    @finalBudget AS decimal(18, 2) = ''
AS
BEGIN
    SET NOCOUNT ON;

    IF (@action = 'Get_TerritoryWiseTradeDiscount')
    BEGIN
        PRINT ('get territory')

        SELECT
            LTRIM(RTRIM(tt.[TerCode])) AS [TerCode], 
            tt.[Year], 
            (CASE tt.[Month] 
                 WHEN 'January' THEN 1 
                 WHEN 'February' THEN 2 
                 WHEN 'March' THEN 3 
                 WHEN 'April' THEN 4 
                 WHEN 'May' THEN 5 
                 WHEN 'June' THEN 6 
                 WHEN 'July' THEN 7 
                 WHEN 'August' THEN 8 
                 WHEN 'September' THEN 9
                 WHEN 'October' THEN 10 
                 WHEN 'November' THEN 11 
                 WHEN 'December' THEN 12 
             END) AS [Month], 
            tt.[MaxDiscRt], tt.[MinBillVal], tt.[TerTgt], 
            tt.[TerDiscRt], tt.[AllDiscBud], tt.[ActVal], 
            tt.[ActDiscVal], tt.[FinalDiscBudget]
        FROM
            TerritoryWiseTradeDiscount AS tt
        WHERE 
            tt.[TerCode] = @territorycode 
            AND tt.[Year] = @disYear 
            AND tt.[Month] = @disMonth
    END
END

當我執行這一行

EXEC [dbo].[spMobileOperationsNew]'Get_TerritoryWiseTradeDiscount','KEG',2021,'November'

我收到上面顯示的錯誤。

ALTER PROCEDURE [dbo].[spMobileOperationsNew]
@action as nvarchar(50),
@territorycode nvarchar(10)='',
@disYear  as int = '',---?????? may be 0
@disMonth as nvarchar(10)= '',
@territoryTarget as decimal(18,2) ='',---????? may be 0.00
@terDiscRate as  decimal(5,2) ='',--???? may be 0.00
@maxDiscRate as  decimal(5,2) ='',--may be 0.00
@minBill as  decimal(18,2) ='',--may be 0.00
@allocateBudget as  decimal(18,2) ='',--may be 0.00
@actualValue as  decimal(18,2) ='',--may be 0.00
@actDiscValue  as  decimal(18,2) ='',--may be 0.00
@finalBudget as  decimal(18,2) =''--may be 0.00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM