当前位置: 代码迷 >> Sql Server >> Error Code: 1292. Truncated incorrect INTEGER value: ''该怎么处理
  详细解决方案

Error Code: 1292. Truncated incorrect INTEGER value: ''该怎么处理

热度:99   发布时间:2016-04-24 10:22:38.0
Error Code: 1292. Truncated incorrect INTEGER value: ''


DROP FUNCTION IF EXISTS quersumme;
DELIMITER $$ 
CREATE FUNCTION input(a INTEGER) RETURNS INT
DETERMINISTIC
BEGIN
Declare temp char(10);
Declare i int Default 0;
Declare j int Default 0;
SET temp = convert(a,char(10));
WHILE i <= char_length(temp) DO
SET j = j + convert(substr(temp,i,1), unsigned integer);
END WHILE;
RETURN j;
END $$


本意想完成输入算各位数的和
select input(123); =====>结果应该是6.也就是1+2+3=6,即各位相加的和。
上面的小段落运行没问题,为什么一输入值做select,就会报错?
我直接做select convert(substr(123,i,1), unsigned integer);可以得到想要的数呀。

------解决方案--------------------
出什么错,你的循环都没有控制的循环体,i ++ 呢?死循环么?
------解决方案--------------------
DROP FUNCTION IF EXISTS input;
DELIMITER $$ 
CREATE FUNCTION input(a INTEGER) RETURNS INT
DETERMINISTIC
BEGIN
    DECLARE temp VARCHAR(10);
    DECLARE i INT DEFAULT 1;
    DECLARE j INT DEFAULT 0;
    DECLARE l INT ;
    SET temp = CONVERT(a,CHAR);  
    SET l=CHAR_LENGTH(RTRIM(temp));
    
    WHILE i <=l  DO
        SET j = j + CONVERT(SUBSTR(temp,i,1), UNSIGNED INTEGER);
        SET i=i+1;
    END WHILE;
    RETURN j;   
    
    -- return l;
END $$


SELECT input(456);


  相关解决方案