• 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

  • 相关阅读:
    dbcp2连接池获取数据库连接Connection
    ItelliJ基于Gradle创建及发布Web项目(三)
    freeswitch编译java esl
    Java程序(非web)slf4j整合Log4j2
    日期常用操作类DateUtil
    关于静态库
    Activity的setContentView的流程
    ProGuard详解
    remoteViews简介
    WMS—启动过程
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/5422787.html
Copyright © 2020-2023  润新知