출처 : http://scidb.tistory.com/90
1. 체크 함수 생성
CREATE OR REPLACE FUNCTION is_number(v_str_number IN varchar2)
RETURN NUMBER
IS /* 데이터가 number 형인지 검사하는 함수임. 1 이 나오면 NUMBER 형임 */
V_NUM NUMBER;
BEGIN
V_NUM := TO_NUMBER(v_str_number);
RETURN 1;
EXCEPTION
WHEN OTHERS THEN RETURN 0 ;
END;
RETURN NUMBER
IS /* 데이터가 number 형인지 검사하는 함수임. 1 이 나오면 NUMBER 형임 */
V_NUM NUMBER;
BEGIN
V_NUM := TO_NUMBER(v_str_number);
RETURN 1;
EXCEPTION
WHEN OTHERS THEN RETURN 0 ;
END;
CREATE OR REPLACE FUNCTION is_date(v_str_date IN varchar2, V_FORMAT IN VARCHAR2 DEFAULT 'YYYYMMDD')
RETURN NUMBER
IS /* 데이터가 DATE 형인지 검사하는 함수임. 1 이 나오면 DATE 형임 */
V_DATE DATE;
BEGIN
V_DATE := TO_DATE(v_str_date, V_FORMAT);
RETURN 1;
EXCEPTION
WHEN OTHERS THEN RETURN 0 ;
END;
2. 함수 사용
select is_number('abcd'), is_number('1234'),
is_date('20090230'), is_date('20090228')
from dual;
3. 결과
IS_NUMBER('ABCD') IS_NUMBER('1234') IS_DATE('20090230') IS_DATE('20090228')
----------------- ----------------- ------------------- -------------------
0 1 0 1
1 row selected.
'::: DB ::: > Oracle' 카테고리의 다른 글
Disabling Commands with SQLPLUS -RESTRICT (0) | 2010.04.05 |
---|---|
오라클 램덤 쿼리 (0) | 2010.03.22 |
오라클 10g 디폴트 계정 (0) | 2010.02.10 |
권순용의 DB 이야기 - DB 전문가로 산다는 것 (1) (0) | 2010.02.10 |
SQL/PLUS COPY 명령어 (0) | 2010.01.11 |