a:
CREATE ORREPLACE FUNCTION GET_STR_COL(STRIN VARCHAR2)RETURN VARCHAR2 IS
STR_CNT NUMBER;
STR_1 VARCHAR2(6);
STR_ASC NUMBER;
STR_GET VARCHAR2(4000);
BEGIN
SELECT LENGTH(STR)INTO STR_CNT FROM DUAL;
WHILE STR_CNT>0LOOP
STR_1:=SUBSTR(STR,LENGTH(STR)-STR_CNT+1,1);
STR_CNT:=STR_CNT-1;
STR_ASC:=ASCII(STR_1);
IF STR_ASC>45216THEN
STR_GET:=STR_GET||STR_1;
END IF;
END LOOP;
RETURN STR_GET;
END;
B:学习下变量定义的方式
CREATE ORREPLACE FUNCTION GETCUSTTEXT(CUSTNAMEVARCHAR2) RETURN VARCHAR2 IS
RESULT VARCHAR2(100);
TMP_CUSTNAME VARCHAR2(100);
COUNT_STR NUMBER;
I NUMBER := 1;
STR_ASCII NUMBER;
CURRENT_CHAR VARCHAR2(10);
BEGIN
SELECT LENGTH(CUSTNAME)INTO COUNT_STR FROM DUAL;
WHILE I < COUNT_STR LOOP
CURRENT_CHAR := SUBSTR(CUSTNAME, I,1);
SELECT ASCII(CURRENT_CHAR)INTO STR_ASCII FROM DUAL;
IF STR_ASCII > 45216 THEN
TMP_CUSTNAME := TMP_CUSTNAME|| CURRENT_CHAR;
END IF;
I := I + 1;
END LOOP;
RESULT := TMP_CUSTNAME;
RETURN(RESULT);
END GETCUSTTEXT;