首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 判斷字符是否為字母的函數實現

     編輯:Oracle 教學

簡易版(ASCII 碼範圍)

CREATE OR REPLACE FUNCTION is_char(p_ch VARCHAR2) RETURN VARCHAR2 IS
  v_ascii NUMBER;
BEGIN
  IF p_ch IS NULL OR LENGTH(p_ch) != 1 THEN
    RETURN 'false';
  END IF;
  v_ascii := ASCII(p_ch);
  -- A-Z: 65-90, a-z: 97-122
  IF v_ascii BETWEEN 65 AND 90 OR v_ascii BETWEEN 97 AND 122 THEN
    RETURN 'true';
  ELSE
    RETURN 'false';
  END IF;
END;
/

正則版(10g+,支持多字節字符集)

CREATE OR REPLACE FUNCTION is_char_regex(p_ch VARCHAR2) RETURN VARCHAR2 IS
BEGIN
  RETURN CASE WHEN REGEXP_LIKE(p_ch, '^[A-Za-z]$') THEN 'true' ELSE 'false' END;
END;
/

測試

SELECT is_char('A'), is_char('z'), is_char('1'), is_char('@'), is_char('中') FROM dual;
-- true, true, false, false, false

擴展:檢查字符串是否純字母

CREATE OR REPLACE FUNCTION is_alpha_str(p_str VARCHAR2) RETURN VARCHAR2 IS
BEGIN
  RETURN CASE WHEN REGEXP_LIKE(p_str, '^[A-Za-z]+$') THEN 'true' ELSE 'false' END;
END;
/
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved