데이터베이스/Postgresql

[PostGreSql] 문자인지 숫자인지 체크하는 함수

cbwstar 2022. 6. 24. 10:13
728x90
반응형

postgresql에는 문자인지 숫자인지 체크하는 함수가 없다.

인터넷 검색하다가 못 찾아서 그냥 함수 하나 만들었다.

CREATE OR REPLACE FUNCTION is_numeric ( p_string varchar ) 
 RETURNS numeric 
 AS $$ 
 DECLARE 
   V_NEW_NUM BOOLEAN;
  BEGIN
   SELECT p_string ~ E'^[-+]?\\d*\\.?\\d+(?:[eE][-+]?\\d+)?$'
       into V_NEW_NUM;
    
    IF (V_NEW_NUM) THEN 
       RETURN 1;
    ELSE 
       RETURN 0;
    END IF;
         
  END; $$
LANGUAGE 'plpgsql'

 

/* 사용방법 함수 호출해서 1이면 숫자 0이면 문자다 */
select is_numeric('-3.2')

728x90
반응형