Oracle 10g 这段代码实现自治事务为何失败呢?
PROMPT 
PROMPT ** Create a procedure using PRAGMA AUTONOMOUS_TRANSACTION
PROMPTCREATE OR REPLACE PROCEDURE logging_ins (
   i_username IN VARCHAR2,
   i_datetime IN TIMESTAMP)
IS
   PRAGMA AUTONOMOUS_TRANSACTION;  -- 定义自治事务
BEGIN   INSERT INTO logging (username, datetime)
   VALUES (i_username, i_datetime);   commit;END;
/
PROMPT
PROMPT
PROMPT ** Create a procedure that calls the autonomous block
PROMPT
  
CREATE OR REPLACE PROCEDURE book_ins (
   i_isbn IN BOOKS.ISBN%TYPE,
   i_category IN BOOKS.CATEGORY%TYPE,
   i_title IN BOOKS.TITLE%TYPE,
   i_num_pages IN BOOKS.NUM_PAGES%TYPE,
   i_price IN BOOKS.PRICE%TYPE,
   i_copyright IN BOOKS.COPYRIGHT%TYPE,
   i_author1 IN BOOKS.AUTHOR1%TYPE,
   i_author2 IN BOOKS.AUTHOR1%TYPE,
   i_author3 IN BOOKS.AUTHOR1%TYPE)
IS
BEGIN   INSERT INTO books (ISBN, CATEGORY, 
                 TITLE, NUM_PAGES,
                 PRICE, COPYRIGHT, AUTHOR1,
                 AUTHOR2, AUTHOR3)
   VALUES (i_isbn, i_category, 
        i_title, i_num_pages,
        i_price, i_copyright, i_author1, 
        i_author2, i_author3);   LOGGING_INS('PLSQL', systimestamp);  -- 自治事务失败   ROLLBACK;EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.PUT_LINE(sqlerrm);
END;
/
EXEC book_ins('12345678','Oracle Server','Oracle Information Retrieval with Oracle Text',440, 35.99, 2005, 44, null, null);