기본적으로 오라클 함수에서 DML(Data Manipulation Language - 레코드 제어 명령어) 즉, insert, update, delete 등을 사용할수 없는데

이를 사용하기 위해서는 다음과 같이 해준다.



FUNCTION myFunction
    RETURN varchar2
IS
pragma autonomous_transaction;

BEGIN
    INSERT INTO myTable VALUES;

    COMMIT;
    RETURN 'OK';
END;



pragma autonomous_transaction
- 자율 트랜잭션
- 부모 트랜잭션의 승인/롤백과 무관하게 현재 객체의 작업을 승앤/롤백 할 수 있다.