일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오라클
- 톰캣
- MIP
- 자바
- 함수
- java
- error
- 이클립스
- 오류
- 회계
- JavaScript
- 태그를 입력해 주세요.
- 도서
- Eclipse
- Book
- 마이플랫폼
- Report Designer
- miplatform
- 엑셀
- 튜닝
- 성능
- Tomcat
- DB
- Excel
- oracle
- 한글
- 에러
- JEUS
- 기타소득
- 데이터베이스
- Today
- Total
어느 가을날의 전환점
ORACLE|자율 트랜잭션(Autonomous Transaction) - 채번 시 활용 본문
CREATE OR REPLACE FUNCTION
FunctionName(.....Parameter....)
RETURN DataType AS
PRAGMA
AUTONOMOUS_TRANSACTION;
BEGIN
..............생략
END;
위와 같이 PRAGMA AUTONOMOUS_TRANSACTION; 을 선언해주면 된다.
<Autonomous
Trasaction>
- 블록에서 자신의 작업을 수행하기 위해서 그 블록
고유의 트랜잭션을 생성
(부모 트랜잭션의 승인/롤백 여부에 상관없이 자신의 작업을 승인하거나 롤백할 수 있다.)
#참고
http://2dong0.springnote.com/pages/6250193?print=1
http://www.oracle-base.com/articles/misc/AutonomousTransactions.php
http://www.oradev.com/autonomous_transaction.jsp
http://blog.naver.com/hjc426/130112241247
-- 프로시저 생성
CREATE OR REPLACE PROCEDURE LOG_MESSAGE( P_MESSAGE VARCHAR2 )
AS
PRAGMA AUTONOMOUS_TRANSACTION;
-- 자율 트랜잭션
-- 부모 트랜잭션의 승인/롤백 여부에 상관없이 자신의 작업을 승인하거나 롤백할 수 있다.
BEGIN
INSERT INTO LOG_TABLE( USERNAME, DATE_TIME, MESSAGE )
VALUES ( USER, CURRENT_DATE, P_MESSAGE );
COMMIT;
END LOG_MESSAGE;
-- 테이블 생성
CREATE TABLE LOG_TABLE( USERNAME VARCHAR2(30),
DATE_TIME TIMESTAMP,
MESSAGE VARCHAR2(4000) );
CREATE TABLE TEMP_TABLE( N NUMBER );
-- 프로시저 실행
BEGIN
LOG_MESSAGE('INSERT INTO TEMP_TABLE');
INSERT INTO TEMP_TABLE VALUES(12345);
LOG_MESSAGE('ROLLBACK INSERT');
ROLLBACK;
END;'Database > Oracle' 카테고리의 다른 글
ORACLE|Oracle10g - CONNECT_BY_ROOT, SYS_CONNECT_BY_PATH, CONNECT_BY_ISLEAF (0) | 2011.07.25 |
---|---|
ORACLE|LEAD(), LAG() 함수 - 특정 컬럼의 지정한 숫자 다음/이전행 데이터 리턴. (0) | 2011.07.25 |
ORACLE|조회 쿼리(Query)에서 와일드카드(Wildcards) 문자열로 사용하기 (0) | 2011.06.07 |
ORACLE|Decode 함수 활용 Tips (0) | 2011.04.10 |
ORACLE|오라클 Table/Index Analyze 확인 및 실행방법 (0) | 2010.12.25 |