zoukankan      html  css  js  c++  java
  • oracle中过滤中文字符或者汉字的函数

    CREATE OR REPLACE FUNCTION GET_CHINESE(P_NAME IN VARCHAR2) RETURN VARCHAR2 IS
     V_CODE        VARCHAR2(30000) := '';
     V_CHINESE     VARCHAR2(4000) := '';
     V_NON_CHINESE VARCHAR2(4000) := '';
     V_COMMA       PLS_INTEGER;
     V_CODE_Q      PLS_INTEGER;
     V_CODE_W      PLS_INTEGER;
    BEGIN
     IF P_NAME IS NOT NULL THEN
      SELECT REPLACE(SUBSTRB(DUMP(P_NAME, 1010), INSTRB(DUMP(P_NAME, 1010), 'ZHS16GBK:')), 'ZHS16GBK: ', '') INTO V_CODE FROM DUAL WHERE ROWNUM = 1;
      FOR I IN 1 .. LENGTH(P_NAME) LOOP
       IF LENGTHB(SUBSTR(P_NAME, I, 1)) = 2 THEN
        V_COMMA  := INSTRB(V_CODE, ',');
        V_CODE_Q := TO_NUMBER(SUBSTRB(V_CODE, 1, V_COMMA - 1));
        V_CODE_W := TO_NUMBER(SUBSTRB(V_CODE, V_COMMA + 1, ABS(INSTRB(V_CODE, ',', 1, 2) - V_COMMA - 1)));
        IF V_CODE_Q >= 176 AND V_CODE_Q <= 247 AND V_CODE_W >= 161 AND V_CODE_W <= 254 THEN
         V_CHINESE := V_CHINESE || SUBSTR(P_NAME, I, 1);
        ELSE
         V_NON_CHINESE := V_NON_CHINESE || SUBSTR(P_NAME, I, 1);
        END IF;
        V_CODE := LTRIM(V_CODE, '1234567890');
        V_CODE := LTRIM(V_CODE, ',');
       END IF;
       V_CODE := LTRIM(V_CODE, '1234567890');
       V_CODE := LTRIM(V_CODE, ',');
      END LOOP;
      /*IF P_CHINESE = '1' THEN
                RETURN V_CHINESE;
            ELSE
                RETURN V_NON_CHINESE;
            END IF;*/
      IF LENGTH(V_CHINESE) > 0 THEN
       RETURN V_CHINESE;
      ELSIF LENGTH(V_NON_CHINESE) > 0 THEN
       RETURN V_NON_CHINESE;
      ELSE
       RETURN '';
      END IF;
     ELSE
      RETURN '';
     END IF;
    END GET_CHINESE;

    使用方法:SELECT /*+ parallel(a,10)*/ A.*, ROWID FROM   ABC_TABLE A where length(GET_CHINESE(logic_phone))>0

  • 相关阅读:
    第二次作业循环语句
    c语言01次作业分支,顺序结构
    PAT 1027. Colors in Mars
    PAT 1026 Table Tennis
    PAT 1035 Password
    PAT 1038. Recover the Smallest Number
    PAT 1028 List Sorting (25)
    PAT 1041 Be Unique (20)
    PAT 1025 PAT Ranking
    1037. Magic Coupon
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/5422787.html
Copyright © 2011-2022 走看看