DECLARE @StationID TINYINT,
@TJZD NVARCHAR(50),
@Temp_TJZD NVARCHAR(50),
@SQL NVARCHAR(300),
@AVG_TJZD FLOAT,
@TempAVG FLOATDECLARE MyTJ_R CURSOR FOR
SELECT DISTINCT StationID FROM YSB_DataMapOPEN MyTJ_RFETCH NEXT FROM MyTJ_R
INTO @StationIDWHILE @@FETCH_STATUS = 0
BEGIN SET @sql = N'SELECT @Temp_TJZD = ZDM FROM YSB_DataMap WHERE (StationID = @StationID) AND ChkItem = ''雨量'''
EXEC sp_executesql @SQL,N'@Temp_TJZD FLOAT output,@StationID TINYINT',@TJZD output,@StationID
SET @sql = N'SELECT @TempAVG = AVG('+@TJZD+N') FROM LSB WHERE (DAY(LSB.ReceiveTime) = DAY(GETDATE()) - 1) '
EXEC sp_executesql @SQL,N'@TempAVG FLOAT output',@AVG_TJZD output
UPDATE TJ_DayLevel
SET InnerEvenLevel = @AVG_TJZD
WHERE StationID = @StationID
FETCH NEXT FROM MyTJ_R
INTO @StationID
END
close MyTJ_R
deallocate MyTJ_R
@TJZD NVARCHAR(50),
@Temp_TJZD NVARCHAR(50),
@SQL NVARCHAR(300),
@AVG_TJZD FLOAT,
@TempAVG FLOATDECLARE MyTJ_R CURSOR FOR
SELECT DISTINCT StationID FROM YSB_DataMapOPEN MyTJ_RFETCH NEXT FROM MyTJ_R
INTO @StationIDWHILE @@FETCH_STATUS = 0
BEGIN SET @sql = N'SELECT @Temp_TJZD = ZDM FROM YSB_DataMap WHERE (StationID = @StationID) AND ChkItem = ''雨量'''
EXEC sp_executesql @SQL,N'@Temp_TJZD FLOAT output,@StationID TINYINT',@TJZD output,@StationID
SET @sql = N'SELECT @TempAVG = AVG('+@TJZD+N') FROM LSB WHERE (DAY(LSB.ReceiveTime) = DAY(GETDATE()) - 1) '
EXEC sp_executesql @SQL,N'@TempAVG FLOAT output',@AVG_TJZD output
UPDATE TJ_DayLevel
SET InnerEvenLevel = @AVG_TJZD
WHERE StationID = @StationID
FETCH NEXT FROM MyTJ_R
INTO @StationID
END
close MyTJ_R
deallocate MyTJ_R
服务器: 消息 8114,级别 16,状态 5,行 1
将数据类型 varchar 转换为 float 时出错。是不是
SET @sql = N'SELECT @TempAVG = AVG('+@TJZD+N') FROM LSB WHERE (DAY(LSB.ReceiveTime) = DAY(GETDATE()) - 1) '
这出的问题?服务器: 消息 8114,级别 16,状态 5,行 1
这个错误怎么看不出是哪行哪个位置出错的啊?