我试图在PL/SQL中反转一个数字。它工作正常,但是当我的号码包含任何0时,输出是意外的。例如:在代码中没有正确地发生零连接?
1234 output 4321
1000 output 1
1203 ouput 3021
10001 output 1
DECLARE
r number(9);
num number(9):=&p_num;
BEGIN
WHILE num>=1 LOOP
IF mod(num,10)=0 THEN -- extracting last digit of a number .
r:=r||0; --if end digit is 0 then concat r with 0
ELSE
r:=r||mod(num,10);--if mod is not 0 then it would be last digit.
END IF;
num:=trunc(num/10);--Removing last digit from number
END LOOP;
dbms_output.put_line(r);
END;
您可以查看您的10001结果呢?我用Perl模拟了上面的代码,并得到了10001而不是1,并且我没有看到1203如何生成3021而没有10001也生成了10001. – 2010-04-04 16:09:23