펑션 질문입니다 0 3 1,557

by 돼지뚱뙝이 [2017.01.05 18:12:12]


현재 펑션 프로시저 공부중입니다. 

펑션을 만들려고하는대 하고자하는것은 간단하게 입력값이 숫자면 리턴으로 '숫자' 아니면 '숫자아님' 을 나오게하려구요 

CREATE OR REPLACE FUNCTION SF_TEST_OUTNUM (
     NUM IN VARCHAR2
) RETURN VARCHAR2 IS
    
    OUTCHAR       VARCHAR2(64) := NULL;
    
BEGIN
    
    SELECT CASE WHEN REGEXP_INSTR(NUM,'[^0-9]') = 0 THEN '숫자' INTO OUTCHAR
                ELSE '숫자아님' INTO OUTCHAR
                 END AS '1'
      FROM DUAL;

    RETURN OUTCHAR;
END;

컴플릿트가 안되어서요 어떤게 잘못되었을까요 알려주세요 고수님들 ㅠㅠ

 

by 모래가흙흙 [2017.01.05 18:52:23]
CREATE OR REPLACE FUNCTION SF_TEST_OUTNUM (
NUM IN VARCHAR2
) RETURN VARCHAR2 IS

OUTCHAR VARCHAR2(64) := NULL;

BEGIN

    SELECT CASE WHEN REGEXP_INSTR(NUM,'[^0-9]') = 0 THEN '숫자' 
                ELSE '숫자아님' END "1"
                 INTO OUTCHAR
                          FROM DUAL;
  RETURN OUTCHAR;
END;

 


by 돼지뚱뙝이 [2017.01.05 19:39:46]

아 INTO 들어가는 자리가 다르군요 좋은정보감사합니다. 


by 마농 [2017.01.06 10:08:48]

혹시 -1 이나 0.1 등이 들어오는 경우는 없겠죠?

혹시 위와 같이 음수나 소수, 또는 지수(10E8) 등도 숫자로 인식해야 한다면?

TO_NUMBER 함수를 이용하고 Exception 처리하시면 됩니다.

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