自己写函数CREATE OR REPLACE FUNCTION f_reverse_str(p_num NUMBER) RETURN NUMBER AS v_num VARCHAR2(20); v_result VARCHAR2(20); v_count NUMBER; BEGIN v_num := to_char(p_num); v_count := length(v_num); FOR i IN 0 .. v_count - 1 LOOP v_result := v_result || substr(v_num, v_count - i, 1); END LOOP; RETURN to_number(v_result); END;
1.Oracle中已经提供了这个函数:REVERSE 2.自己写个: CREATE OR REPLACE PROCEDURE REVERSE( in_string IN VARCHAR2 DEFAULT NULL ,out_string OUT VARCHAR2 ) IS wk_string VARCHAR2(2); i NUMBER; BEGIN i := 0 ; LOOP i := i + 1; wk_string := SUBSTR(in_string,i,1); out_string := wk_string || out_string ; EXIT WHEN i = LENGTH(in_string); END LOOP; END;
[align=center]==== 思想重于技巧 ====
[/align]
.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
v_num VARCHAR2(20);
v_result VARCHAR2(20);
v_count NUMBER;
BEGIN
v_num := to_char(p_num);
v_count := length(v_num);
FOR i IN 0 .. v_count - 1
LOOP
v_result := v_result || substr(v_num, v_count - i, 1);
END LOOP;
RETURN to_number(v_result);
END;
2.自己写个:
CREATE OR REPLACE PROCEDURE REVERSE(
in_string IN VARCHAR2 DEFAULT NULL
,out_string OUT VARCHAR2
)
IS
wk_string VARCHAR2(2);
i NUMBER;
BEGIN i := 0 ;
LOOP
i := i + 1;
wk_string := SUBSTR(in_string,i,1);
out_string := wk_string || out_string ;
EXIT WHEN i = LENGTH(in_string);
END LOOP;
END;