CREATE OR REPLACE FUNCTION TRIM_CHARS (theStr IN VARCHAR2) RETURN VARCHAR2 IS rtVal VARCHAR2(4000); CURR_CHAR VARCHAR2(2); STR VARCHAR2(4000); BEGIN rtVal:=''; STR:=theStr; IF STR IS NOT NULL THEN FOR i IN 1..LENGTH(STR) LOOP CURR_CHAR:=SUBSTR(STR,i,1); IF LENGTHB(CURR_CHAR)=2 THEN rtVal:=rtVal || CURR_CHAR; END IF; END LOOP; END IF; RETURN rtVal; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; /
IS
rtVal VARCHAR2(4000);
CURR_CHAR VARCHAR2(2);
STR VARCHAR2(4000);
BEGIN
rtVal:=''; STR:=theStr; IF STR IS NOT NULL THEN
FOR i IN 1..LENGTH(STR) LOOP
CURR_CHAR:=SUBSTR(STR,i,1);
IF LENGTHB(CURR_CHAR)=2 THEN
rtVal:=rtVal || CURR_CHAR;
END IF;
END LOOP;
END IF; RETURN rtVal;
EXCEPTION
WHEN OTHERS THEN RETURN NULL;
END;
/
ascii(str)>255可不是都表示汉字
LENGTHB('。')=LENGTH('。')=2