存储过程 - 将数据类型 varchar 转换为数字时出错
Stored procedure - Error converting data type varchar to numeric
当 运行 一个简单的存储过程时,我收到此错误,坦率地说,我不知道为什么。
Msg 8114, Level 16, State 5, Procedure PROC_TEST, Line 15
Error converting data type varchar to numeric.
列:
SI_ID
是 NUMERIC(19,0)
SI_COMPANYID
是 NUMERIC(19,0)
SI_LOGINID
是 VARCHAR(100)
知道为什么吗?
这是存储过程:
CREATE PROCEDURE [xxxxxx].[PROC_TEST]
AS
BEGIN
SET NOCOUNT ON
DECLARE
@id NUMERIC(19,0),
@login VARCHAR(100);
DECLARE user_cursor CURSOR <<----- Line 15
FOR
SELECT
SI_ID, SI_LOGINID
FROM SI_USER
WHERE SI_COMPANYID = 123
OPEN user_cursor
FETCH NEXT FROM user_cursor into @id, @login
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @id + ', ' + @login
FETCH NEXT FROM user_cursor into @id, @login
END
CLOSE user_cursor
DEALLOCATE user_cursor
END
SQL 错误行引用不准确。
错误似乎是这一行:PRINT @id + ', ' + @login
尝试PRINT CONVERT(varchar, @id) + ', ' + @login
当 运行 一个简单的存储过程时,我收到此错误,坦率地说,我不知道为什么。
Msg 8114, Level 16, State 5, Procedure PROC_TEST, Line 15
Error converting data type varchar to numeric.
列:
SI_ID
是NUMERIC(19,0)
SI_COMPANYID
是NUMERIC(19,0)
SI_LOGINID
是VARCHAR(100)
知道为什么吗?
这是存储过程:
CREATE PROCEDURE [xxxxxx].[PROC_TEST]
AS
BEGIN
SET NOCOUNT ON
DECLARE
@id NUMERIC(19,0),
@login VARCHAR(100);
DECLARE user_cursor CURSOR <<----- Line 15
FOR
SELECT
SI_ID, SI_LOGINID
FROM SI_USER
WHERE SI_COMPANYID = 123
OPEN user_cursor
FETCH NEXT FROM user_cursor into @id, @login
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @id + ', ' + @login
FETCH NEXT FROM user_cursor into @id, @login
END
CLOSE user_cursor
DEALLOCATE user_cursor
END
SQL 错误行引用不准确。
错误似乎是这一行:PRINT @id + ', ' + @login
尝试PRINT CONVERT(varchar, @id) + ', ' + @login