Design & Development

간단한 오라클 함수

오라클 제품 쓰다 보니 간혹 이런 짓도 하게된다.
테이블 컬럼 타입 – Number 타입의 precision 과 scale 을 기준으로 – 에 맞추어 입력 폼값 검사하는 아주 기본적인 기능하는 오라클 함수를 하나 만들었다. DB 기본이 약해 좀 억지스럽게 만들었지만 그냥 구문에 쓰인 패턴 나중에 쓸 일 있으려나 싶어 메모해둔다.

function CHK_NUMBER_PS_LEN(c1 in varchar2, c2 in varchar2, i_precision in number, i_scale in number)
return varchar2 is
    num_len_error   EXCEPTION;
    l_regular_expr   VARCHAR2(100);
    i_len   number := i_precision - i_scale;
    BEGIN
        l_regular_expr := '^[[:digit:]]{1,'||i_len||'}$|^[[:digit:]]{1,'||i_len||'}\.[[:digit:]]{1,'||i_scale||'}$';

        IF REGEXP_INSTR(c1, l_regular_expr) = 0 THEN
        RAISE num_len_error;
        END IF;

        return 'T';
    EXCEPTION
    WHEN num_len_error THEN
        return c2 || ' Length Should be less then ('|| i_precision || ' , ' || i_scale ||')  || ' ;
    WHEN OTHERS THEN
        return 'Error Occured, Check the entered code.' || SQLERRM || '||';
    END;
end;
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s