varchar値を金額にキャストするときに失敗する関数があります。スクリプトにisnullチェックを追加して、問題がnullキャストではないことを確認しました。SQLサーバー2008関数にmoney varcharへのキャストが機能しない
指定された値が問題かどうかを発見するこのやり方にもかかわらず、私はそれを解決できませんでした。
機能スクリプトは次のとおりです。
CREATE FUNCTION f_casting
(@t VARCHAR(2),
@q VARCHAR(17),
@Q1 VARCHAR(17),
@Q2 VARCHAR(17),
@Q3 VARCHAR(17)
)
RETURNS MONEY
AS
BEGIN
DECLARE @Qf MONEY;
SET @Qf = -1;
IF @t = '2'
BEGIN
DECLARE @MAX MONEY;
SET @MAX = 0;
IF ISNUMERIC(@Qmed) = 1
SET @Qmed = CAST(isnull(STUFF(@Qmed, 10, 0, '.'), 0) AS MONEY);
SET @Qf = @Qmed;
END;
RETURN ROUND(@Qf, 2);
END;
機能で、または金銭データ型のキャストに問題がある場合、誰もが知っていますか? @ QFデータ型をvarcharに変更した場合、それは機能します。なぜあなたは小さな鋳造用function
に行く
WHTウルが達成しようと? –
@ YogeshSharmaはお金にvarchar値をキャストします – Maik
私たちは読者を気にしません。 「失敗する」とはどういう意味ですか?あなたはこのデータにどのようなデータを入れていますか?その情報がなければ、我々はただ推測している –