PL/SQL 예외처리 문의 드립니다. 0 4 3,156

by 하동훈 NO_DATA_FOUND Exception 부하 [2014.01.16 10:22:22]


PL/SQL 작성중에 궁금한것이 있어서 문의 드립니다.

특정 테이블에 작업을 하는데

데이터가 기존에 있는것이면 Update

기존에 없는 것이면 Insert를 처야 하는데.

기존에 있는것인지 없는것인지 판단을 위해

select 를 한번 태워서 판단 후 insert나 update를 하는게 부하가 적은지

아니면

insert를 무조건 하고 exception 처리를 하여 오류 발생하면

update를 하는게 부하가 적은지 궁금합니다.

아시는분 답변좀 꼭 부탁드리겠습니다.

by 용근님 [2014.01.16 10:26:59]

by 손님 [2014.01.16 11:02:33]
특정테이블과 같은 구조의 테이블, 예를들어 t1을 만들고 t1에 입력할 데이터를 다 넣은 다음 MERGE문을 사용해서 T1테이블의 내용을 특정테이블에 MERGE해주면 됩니다.

by 하동훈 [2014.01.16 11:23:40]

용근님, 손님 답변감사합니다.

merge기능은 알고 있는데요

저는 어느게 더 부하가 덜 걸리는지 알고 싶어서요 ;ㅅ;


by 정진우 [2014.01.16 12:16:36]
저도 같은 문제로 Merge Into 를 사용한적이 있습니다.(용근님과 마노님이 답변주셨어요).

좀 시간이 지나고나서 보니, 해당되는 업무가 어떠냐에 따라서

Merge Into를 쓸지 ..아니면

Exception을 발생할지 고려봐야할 것 같습니다.

Exception발생도 하지 않으려면 제생각에는

무조건 단일행 반환하는 함수를 select count(column) 이라던가로 IF절을 넣어도 되지 않을까 싶어요.

저는 오라클 초보이지만, 같은 문제로 고민한 적이있어서 이렇게 답글답니다. :)
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입