0

同じコードを使用する 2 つの SQL サーバー データベースがあります。

以下のエラーが表示されます:

 Error when executing tsp_parse_str_int at line 26. Error message: Conversion failed when converting the nvarchar value '1000 ' to data type int.

先頭にスペースがあることに気付いた場合でも、私のコードでは変換前にスペースを削除しています!

    SET @temp = (select replace(@temp, ' ', ''))
    SET @projid = cast(@temp as int)

ありがとう、ブルース

4

3 に答える 3

1

以下のコードをSQLServer2012で試しましたが、トリミングなしで機能します。それは単なる通常の''であり、別の隠されたキャラクターではありませんか?

declare @temp nvarchar(20)
declare @projid int
set @temp = '  12345    '
--SET @temp = (select replace(@temp, ' ', ''))
SET @projid = cast(@temp as int)
select @projid
于 2012-10-02T22:30:49.117 に答える
1

これを試して

SET @temp = (select RTRIM(@temp))
SET @projid = cast(@temp as int)

RTRIM右のスペースをLTRIMトリムし、左のスペースをトリムします。左右両方から同時にスペースを削除するにはLTRIM(RTRIM(@temp))

于 2012-10-02T22:20:01.630 に答える
0

私はそれが実際にはスペースではなく、キャリッジリターンタブでも改行でもないことを知りました。

REPLACE(REPLACE(REPLACE(MyField、CHAR(10)、'')、CHAR(13)、'')、CHAR(9)、'')

于 2012-10-03T02:59:13.163 に答える