Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 存储过程-将数据类型varchar转换为数字时出错_Sql_Sql Server_Stored Procedures_Sql Server 2008 R2 - Fatal编程技术网

Sql 存储过程-将数据类型varchar转换为数字时出错

Sql 存储过程-将数据类型varchar转换为数字时出错,sql,sql-server,stored-procedures,sql-server-2008-r2,Sql,Sql Server,Stored Procedures,Sql Server 2008 R2,当运行一个简单的存储过程时,我会遇到这个错误,坦率地说,我不知道为什么 Msg 8114,16级,状态5,程序程序程序测试,第15行 将数据类型varchar转换为数字时出错 栏目: SI_ID是数字19,0 SI_COMPANYID是数字19,0 SI_LOGINID是VARCHAR100 知道为什么吗 这是存储过程: CREATE PROCEDURE [xxxxxx].[PROC_TEST] AS BEGIN SET NOCOUNT ON DECLARE

当运行一个简单的存储过程时,我会遇到这个错误,坦率地说,我不知道为什么

Msg 8114,16级,状态5,程序程序程序测试,第15行 将数据类型varchar转换为数字时出错

栏目:

SI_ID是数字19,0 SI_COMPANYID是数字19,0 SI_LOGINID是VARCHAR100 知道为什么吗

这是存储过程:

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


请尝试打印CONVERTvarchar、@id++、'++@login

SQL错误行引用不准确。 错误似乎是这一行:PRINT@id+,'++@login


请尝试打印CONVERTvarchar、@id+'、'+@login

SI_COMPANYID列的类型是什么?@Parado SI_COMPANYID列的类型是数字19,0 SI_COMPANYID列的类型是什么?@Parado SI_COMPANYID列的类型是数字19,0谢谢,这确实是个问题。真不敢相信我在这样一件愚蠢的事情上浪费了几个小时,仅仅因为微软无法提供准确的错误信息。无论如何,谢谢你@帕拉多,别担心,我总是接受答案。只需再等3分钟就可以接受,但现在不行,系统会阻止太快接受答案。多谢,这确实是个问题。真不敢相信我在这样一件愚蠢的事情上浪费了几个小时,仅仅因为微软无法提供准确的错误信息。无论如何,谢谢你@帕拉多,别担心,我总是接受答案。只需再等3分钟就可以接受。现在无法接受,系统会阻止太快接受答案