[오라클] 파라미터 값의 형에 구애받지 않고 소수점 없애는 방법? 0 2 2,227

by 소금10g [SQL Query] SQL QUERY 쿼리 오라클 형변환 소수점 [2017.09.27 15:27:53]


안녕하세요 ㅠㅠ

개발을 하다가 궁금한 점이 있어서 질문 드립니다! ㅠㅠ


제가 오라클에서

파라미터 값을 받아와서

그 값을 그대로 VARCHAR2 컬럼에 INSERT하는 쿼리를 짜고 있습니다.

 

근데 문제는 이 파라미터 값이

숫자만 받도록, 혹은 문자만 받도록 이렇게 정해져 있지 않고요

 

파라미터값이 어떤 형으로 들어오던지

문자를 받아오면 문자 그대로 저장해야 하고

숫자를 받아오는 경우 그 숫자의 소수점을 TRUNC 하고 정수만 저장해야 합니다.


문제는 파라미터 값의 형이 딱 정해져 있지 않다보니

제가 좀 찾아서 이것저것 써보려 하면

자꾸 수치가 부적합하다는 메세지가 뜹니다 ㅠㅠ


형에 구애받지 않고

문자를 받으면 문자 그대로 INSERT 하고

숫자가 들어오면 소수점 털어내고 INSERT 하는 방법 알려주실 수 있나요?

 

감사합니다!

by 우리집아찌 [2017.09.27 15:32:38]

어플리케이션에서 기본적으로 숫자체크 로직을 넣어주세요.

 


by 마농 [2017.09.27 15:40:08]
DECLARE
--    p_v    VARCHAR2(100) := '123.45';  -- 입력
    p_v    VARCHAR2(100) := 'abcde';   -- 입력
    r_v    VARCHAR2(100);              -- 출력
BEGIN
    BEGIN
        r_v := TRUNC(p_v);             -- 수치변환
    EXCEPTION
        WHEN OTHERS THEN
          r_v := p_v;                  -- 수치변환 에러시 문자열 그대로
    END;
    INSERT INTO t VALUES(r_v);         -- insert
END;
/

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입