Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SSL
- table
- GIT
- R
- hadoop
- MSSQL
- es6
- Python
- xPlatform
- JavaScript
- Sqoop
- Kotlin
- tomcat
- NPM
- 보조정렬
- IntelliJ
- 공정능력
- Android
- mybatis
- vaadin
- Express
- plugin
- SPC
- SQL
- Eclipse
- Spring
- window
- Java
- react
- mapreduce
Archives
- Today
- Total
DBILITY
oracle procedure dml시 lock 확인 후 오류처리 본문
반응형
CREATE OR REPLACE PROCEDURE TEST_FILTER_INSERT (V_MSG out VARCHAR2) IS
START_TIME NUMBER;
END_TIME NUMBER;
TX_CNT NUMBER;
TX_INPROGRESS EXCEPTION;
/******************************************************************************
NAME: TEST_FILTER_INSERT
PURPOSE: 테스트
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2016/09/27 ROOKIE 1. Created this procedure.
******************************************************************************/
BEGIN
START_TIME := DBMS_UTILITY.GET_TIME;
V_MSG := 'TEST_FILTER_INSERT ';
SELECT
COUNT(*) INTO TX_CNT
FROM
V$SESSION A, V$LOCK B, DBA_OBJECTS C
WHERE A.SID = B.SID
AND B.ID1 = C.OBJECT_ID
AND B.TYPE = 'TM'
AND C.OWNER = '소유자'
AND C.OBJECT_NAME = '테이블';
IF ( TX_CNT > 0 ) THEN
RAISE TX_INPROGRESS;
END IF;
/* DML
* DELETE FROM 테이블 WHERE 컬럼='999999';
*/
END_TIME := DBMS_UTILITY.GET_TIME;
V_MSG := V_MSG||' ELAPSED: '||TO_CHAR( (END_TIME-START_TIME)/100,'FM9,990.990')||' ,Rows affected : '||TO_CHAR(SQL%ROWCOUNT,'FM999,999,990');
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN TX_INPROGRESS THEN
ROLLBACK;
--RAISE_APPLICATION_ERROR(-20001,'이미 실행중입니다.');
V_MSG := V_MSG||' ERROR: 이미 실행중입니다.';
WHEN OTHERS THEN
ROLLBACK;
V_MSG := V_MSG||' ERROR: '||SQLERRM;
--DBMS_OUTPUT.PUT_LINE(V_MSG);
RAISE;
END TEST_FILTER_INSERT;
/
반응형
'database > oracle' 카테고리의 다른 글
테이블스페이스 백업 및 특정 테이블만 다른 스키마에 복구 (0) | 2016.12.02 |
---|---|
oracle sql week ( 주차 계산 ) (0) | 2016.10.18 |
oracle 특정 테이블 lock 확인 (0) | 2016.09.27 |
oracle ORA-01591: lock held by in-doubt distributed transaction (0) | 2016.09.26 |
Methods for Loading Tables (0) | 2016.09.07 |
Comments