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 을 쓰지 않으면 함수 컴파일이 되지 않는다.

복사했습니다!