CREATE FUNCTION DELETE_TEST(TARGET_MBR_NO INTEGER)
RETURN VARCHAR2
IS PRAGMA AUTONOMOUS_TRANSACTION;
RESULT_DATA INTEGER;
BEGIN
DELETE FROM ㄱㄱㄱㄱ WHERE MBR_NO = TARGET_MBR_NO;
DELETE FROM ㄴㄴㄴㄴ WHERE MBR_NO = TARGET_MBR_NO;
DELETE FROM ㄷㄷㄷㄷ WHERE MBR_NO = TARGET_MBR_NO;
DELETE FROM ㄹㄹㄹㄹ WHERE MBR_NO = TARGET_MBR_NO;
DELETE FROM ㅁㅁㅁㅁ WHERE MBR_NO = TARGET_MBR_NO;
DELETE FROM ㅂㅂㅂㅂ WHERE MBR_NO = TARGET_MBR_NO;
DELETE FROM ㅎㅎㅎㅎ WHERE MBR_NO = TARGET_MBR_NO;
COMMIT;
RETURN 1;
END DELETE_TEST;
/
INSERT 테스트를 하는 과정에서 외래키 때문에
테스트 데이터를 순차적으로 삭제를 해야하는 상황이 발생했고,
매번 하나하나 삭제를 하는 것이 불편하였다.
함수를 만들어서 일괄 삭제를 하려고 했으나
질의 안에 DML 작업을 수행할 수 없습니다.
아래와 같이 해결 하였다.
PRAGMA AUTONOMOUS_TRANSACTION ;
COMMIT 을 쓰지 않으면 함수 컴파일이 되지 않는다.
'SQL' 카테고리의 다른 글
[Oracle] 다중 결과행을 한줄로 뽑기 (0) | 2022.11.08 |
---|---|
[Oracle] , 로 구분 된 값을 검색할 때, (0) | 2022.11.01 |
오라클 원하는 ORDER BY(NULL우선, NULL 제일뒤 등등) (0) | 2022.10.21 |
[maria] 원하는 값으로 정렬 (0) | 2022.10.05 |
[오라클] sequence 생성/삭제 (0) | 2022.09.12 |