PL/SQL 프로시저에서 COMMIT을 하지 않아도 COMMIT이 되는 경우 2 5 7,102

by 곰두리 [PL/SQL] PL/SQL COMMIT [2013.11.19 18:48:06]



프로시저에서 COMMIT문이 들어가 있지 않음에도 자동으로 COMMIT이 되는 경우가 있는지 궁금합니다.

프로시저에서 외부 FUNCTION을 호출할 때 이런 경우가 발생되기도 한다는데......

PL/SQL에서  COMMIT을 직접 찍지 않고도 COMMIT이 되는 케이스가 있을가요?
by Oracler [2013.11.19 20:59:34]
프로시저를 작성할 때 프로시저 내부에서 동적SQL을 이용해서 DDL, DCL을 실행하지 않는 한 자동으로 커밋되는 경우는 없을 겁니다.
그리고 프로시저에서 트랜잭션을 종료시키도록 작성하는 것은 권장되지 않는 (그리고 좋지 않은) 프로그래밍 방식입니다.


by 도라지요 [2014.03.05 10:20:27]

프로시저 내에서 commit를 하면 안좋다는건데,, 이유가 궁금합니다^^;


by 부쉬맨 [2014.03.05 10:25:01]
이례적으로 설명을해드리자면

많이 나오는 말중에
한방커밋...
이라는게 모든 트랜잭션에 대해서 한번에 커밋을한다...
그럼 부하자체도 한번이다...

업무적으로 발생되는경우에는 어쩔수없이 commit을찍기도하지요..

case by case

by 야신 [2013.11.19 21:40:41]
외부펑션내에 commit 이 있는것으로 추정됩니다

by 곰두리 [2013.11.20 11:13:58]

댓글 감사합니다.

프로시저 문장중에 동적으로 TRUNCATE하는 문장이 있는데..이 부분에서 커밋이 된것으로 확인되었습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입