使用以下存储过程查找数字的反向,但它显示了错误:使用正确的语法使用near循环。
DELIMITER //
CREATE PROCEDURE ggrepeat1()
begin
declare num1 int;
declare num2 int;
declare rev int default 0;
set @num1:='&num1';
while num1>0
loop
set @num2:=num1 mod 10;
set @rev:=num2+(rev*10);
set @num1:=floor(num1/10);
end loop;
dbms_output.put_line('Reverse number is: '||rev);
end//
DELIMITER ;发布于 2017-12-17 09:19:14
mysql中的while循环应该用于类似的操作。
这是第一个问题
while n>0 do
content..
end while第二个问题是
dbms_output.put_line('Reverse number is: '||rev);在mysql中,您不能使用上面的代码。
相反,您可以使用这个
Select 'The reverse of number is 'rev;所以你的代码是
DELIMITER //
CREATE PROCEDURE ggrepeat1()
begin
declare num1 int;
declare num2 int;
declare rev int default 0;
set @num1:='&num1';
while num1>0 do
set @num2:=num1 mod 10;
set @rev:=num2+(rev*10);
set @num1:=floor(num1/10);
end while;
Select 'Reverse number is: 'rev;
end//
DELIMITER ;发布于 2017-12-17 09:17:05
正如注释中所指出的,不能在甲骨文中使用mysql语法。不管怎样,我觉得你把事情搞得太复杂了。一种更简单的方法是将数字转换为字符串,使用内置函数将其反转,然后将其转换回数字:
CREATE FUNCTION reverse_int(num INT)
RETURNS INT DETERMINISTIC
RETURN CAST(REVERSE(CAST(num AS CHAT)) AS INT);https://stackoverflow.com/questions/47853539
复制相似问题