기본적으로 오라클 함수에서 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
- 자율 트랜잭션
- 부모 트랜잭션의 승인/롤백과 무관하게 현재 객체의 작업을 승앤/롤백 할 수 있다.