프로시저 질문 0 3 1,485

by 앗싸 [PL/SQL] [2016.01.24 22:10:58]


아래 프로시저에서 매개변수 paramsNodeName 에 문자열 값 10, 20, 30 넘어 옵니다.

숫자형 타입 필드인 NodeName 비교하여 삭제 하려 합니다.

매개변수는 문자이고 비교하는 필드는 숫자형 필드 인데 어떻게 처리해야하나요 ㅡㅡ 

procedure DeleteMenuReg1
  (     
     paramsNodeName Varchar2  <--- 문자열로 클라이언트 프로그램에서 10, 20, 30 값을 보냄
  )
  is
  begin  
      Delete From MenuReg where NodeName in(paramsNodeName );   
  end DeleteMenuReg1;

by 우리집아찌 [2016.01.25 08:34:37]

http://www.gurubee.net/lecture/1720


by 마농 [2016.01.25 13:06:33]
DELETE FROM MenuReg
 WHERE NodeName IN (SELECT TO_NUMBER(REGEXP_SUBSTR(paramsNodeName, '[0-9]+', 1, LEVEL)) v
                      FROM (SELECT '10,20,30' paramsNodeName FROM dual)
                     CONNECT BY LEVEL <= REGEXP_COUNT(paramsNodeName, '[0-9]+')
                    )
;

 


by 앗싸 [2016.01.25 13:23:24]

우리집아찌님 감사합니다.

마농님 감사합니다.

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