title: autonomous transaction scope and error raising
body: <p>I'm doubting a bit. Let's assume this package's procedures:</p>
  
  <pre><code>PROCEDURE ERR_MANAGER(I_ERRM IN VARCHAR2) IS
  BEGIN
      ROLLBACK;
      --DO SOME STUFF
  END ERR_MANAGER;
  
  PROCEDURE test IS 
      PRAGMA AUTONOMOUS_TRANSACTION;
  BEGIN
  
      test2;
      COMMIT;
  EXCEPTION WHEN OTHERS THEN ERR_MANAGER(SQLERRM);
  END test;
  
  
  PROCEDURE test2 IS
  BEGIN
  
      --DO SOME TRANSACTIONNAL DML
  
      RAISE_APPLICATION_ERROR(-20001, 'ERR'); --for the test purpose, in reality this could be any actual error
  
  END test2;
  </code></pre>
  
  <p>So, as you can see there's an error in <code>test2()</code>, which is going to raise up to <code>test()</code>, and then be handled in the <code>err_manager()</code> method.</p>
  
  <p>So I have 2 questions: </p>
  
  <ol>
  <li>what's the scope of err_manager()? Is it still within the autonomous transaction? I guess so, since it is only a function call, but I'd like to be sure</li>
  <li>what's happening if you exit an autonomous transaction brutally because of an error raising to upper levels, without proceeding any kind of commit or rollback?</li>
  </ol>
  
  <p>Thank you very much.
  S.</p>