【发布时间】:2023-03-04 10:33:01
【问题描述】:
在运行一个简单的存储过程时,我遇到了这个错误,坦率地说我不知道为什么。
消息 8114,级别 16,状态 5,过程 PROC_TEST,第 15 行
将数据类型 varchar 转换为数值时出错。
列:
-
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
【问题讨论】:
-
SI_COMPANYID的列类型是什么? -
@Parado SI_COMPANYID 是 NUMERIC(19,0)
标签: sql sql-server stored-procedures sql-server-2008-r2