您的位置:首页 > 数据库 > Oracle

正则表达式-oracle提取汉字

2016-04-12 23:17 337 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: