自己简单写了一个,你改善一下。 create or replace function Reverse(s string) return varchar2 is Result varchar2(1000); v_s string(1000); begin v_s:=substr(s,1,1); for i in 2..length(s) loop v_s:=substr(v_s,1,1)||v_s; end loop; Result:=v_s; return(Result); end Reverse;SQL> select reverse('abcd') from dual;REVERSE('ABCD') --------------- dcbaSQL> select reverse('123456789') from dual;REVERSE('123456789') -------------------- 987654321SQL>
好像oracle有这个函数 但不支持中文
另外,jiezhi的程序稍微有点问题 改了一下jiezhi的代码 11:13:01 SQL> create or replace function Re(s string) return varchar2 is 11:13:31 2 Result varchar2(1000); 11:13:31 3 v_s string(1000); 11:13:31 4 begin 11:13:31 5 11:13:31 6 for i in 1..length(s) 11:13:31 7 loop 11:13:31 8 Result:=Result||substr(s,length(s)-i+1,1); 11:13:31 9 end loop; 11:13:31 10 return(Result); 11:13:31 11 end Re; 11:13:31 12 /函数已创建。实际:131 11:13:31 SQL> select re('我们是programer') from dual;RE('我们是PROGRAMER') --------------------------------------------------------------------------------- remargorp是们我实际:50 11:13:33 SQL>
reverse('abc')
返回'cba'
create or replace function Reverse(s string) return varchar2 is
Result varchar2(1000);
v_s string(1000);
begin
v_s:=substr(s,1,1);
for i in 2..length(s)
loop
v_s:=substr(v_s,1,1)||v_s;
end loop;
Result:=v_s;
return(Result);
end Reverse;SQL> select reverse('abcd') from dual;REVERSE('ABCD')
---------------
dcbaSQL> select reverse('123456789') from dual;REVERSE('123456789')
--------------------
987654321SQL>
但不支持中文
改了一下jiezhi的代码
11:13:01 SQL> create or replace function Re(s string) return varchar2 is
11:13:31 2 Result varchar2(1000);
11:13:31 3 v_s string(1000);
11:13:31 4 begin
11:13:31 5
11:13:31 6 for i in 1..length(s)
11:13:31 7 loop
11:13:31 8 Result:=Result||substr(s,length(s)-i+1,1);
11:13:31 9 end loop;
11:13:31 10 return(Result);
11:13:31 11 end Re;
11:13:31 12 /函数已创建。实际:131
11:13:31 SQL> select re('我们是programer') from dual;RE('我们是PROGRAMER')
---------------------------------------------------------------------------------
remargorp是们我实际:50
11:13:33 SQL>