在procedure中
DECLARE NextNum DECIMAL(25, 0) DEFAULT -1;
DECLARE num1 BIGINT DEFAULT -1;
DECLARE nlen integer DEFAULT -1;
DECLARE sMsg Varchar(21) DEFAULT ' ';
set NextNum =1000;
set num1 = BIGINT(NextNum);
set nlen = length(num1);
// 这里为什么nlen 不是4,而是他的 字节长度8
set nlen = length(char( BIGINT(NextNum)));
//为什么这里的nlen 又是20 而切如过在声明变量类型 DECLARE sMsg Varchar(21) DEFAULT ' '; 小于20是 这里返回的就是定义的长度
如DECLARE sMsg Varchar(18) DEFAULT ' '; 这里的nlen 就是18 请高手帮忙解货的啊
------解决方案--------------------------------------------------------
奇怪
------解决方案--------------------------------------------------------
set Num= char(BIGINT(NextNum));
Num=rtrim(Num);
然后再用 set nlen = length(Num);去长就正常了.
你试试