목록DB (3)
고코딩
AUTONOMOUS TRANSACTION, 독립적인 트랜잭션 프로시저에서 프로시저를 호출하고 또 프로시저에서 프로시저를 호출하면서 점점 TRANSACTION의 위치가 애매해지기 시작했다. 그래서 프로시저마다 독립적인 트랜잭션을 할당해 줄수는 없을까 싶어서 찾아보다가 AUTONOMOUS TRANSACTION을 발견하였다. AUTONOMOUS TRANSACTION이란? 블록에서 자신의 작업을 수행하기 위해서 그 블록의 고유의 트랜잭션을 생성하는 경우에 해당하며 그 불록의 트랜잭션의 결과가 자신을 포함하거나 호출한 트랜잭션에의 상태에 의해 영향을 받지 않는 속정을 가지는 트랜잭션을 의미한다. 마스터 트랜잭션과는 lock, resource, commit에 관련된 의존성을 가지지 않는다. 테스트를 통해서 살펴보자..
Oracle DB 계정 대소문자 구분 회사에서 DB에 접속해 export/import를 해야할 일이 있어서 계정이름/계정비번 을 입력하니까 계속해서 로그인에 실패하였다. 혹시 내가 오타를 냈나 싶어서 로그도 다시 보고 이것저거 다 해봤지만 계속해서 로그인에 실패했었다. 20분간의 삽질을 한후 혹시 대소문자 구분을 하는건가 싶어서 소문자로 작성하였다.(필자는 참고로 SQL문을 작성할 때 Caps Lock을 켜 놓는다.) 결과는 로그인에 성공... 아니 처음 안 사실이다. sql문에서는 대소문자 구분 안하면서 로그인 아이디 비번은 대소문자 구분을 하다니 앞으로 주의해야 겠다.
오라클 프로시져 ROLLBACK COMMIT 기준 프로시져를 작성하던 중 EXCEPTION 발생시 ROLLBACK을 해야하는 경우가 생겼다. 근데 프로시져의 ROLLBACK의 기준을 알고 싶었다. ROLLBACK을 만나면 프로시져가 수행한 모든 명령문들이 프로시져 수행 전으로 돌아가는 건지 아니면 가장 최근 COMMIT 내역으로 돌아가는지 궁금했다. 참고로 COMMIT ROLLBACK은 다 트랜잭션 단위를 기준으로 하는 데이터 상태를 나타낼때 사용된다. 결론 결론 부터 말하자면 정답은 *ROLLBACK을 만나면 가장 최근에 COMMIT된 상태로 돌아간다. * 예제 코드를 보면서 이해해 보자 설명 TEMP.TABLE CREATE TABLE TEMP( TEMP_ID NUMBER, TEMP_NO VARCHAR..