最近在写DB2存储过程,遇到要将字符串翻转的需求,本以为只要调用reverse() 方法便可以,但是,DB2没有内置的字符串翻转方法,所以要自己写一个字符串翻转的方法来实现,其代码如下
CREATE OR REPLACE FUNCTION ***.REVERSE2 ( C VARCHAR(200) )
RETURNS VARCHAR(200) //返回的值
SPECIFIC REVERSE2
LANGUAGE SQL
DETERMINISTIC
NO EXTERNAL ACTION
READS SQL DATA
INHERIT SPECIAL REGISTERS
BEGIN ATOMIC //一定要加 ATOMIC,嗯,多么痛的领悟
declare v_str varchar(100) default '';
DECLARE i INTEGER;
SET i = length(C); //传入的字符串的长度
WHILE(i >= 1) DO
SET v_str = v_str||substr(C,i,1);
SET i= i- 1;
END WHILE;
return v_str;//返回
END;
写完方法之后在需要的时候调用,测试是否正确
在toad的编辑器里面直接输入
values (REVERSE2('zxm'))