no.
No
yes
Yes ,You can Commit inside the trigger.But for this you have to make this trigger transaction to be a Independent transaction from its parent transaction, You can do this by using Pragma. Pragma AUTONOMOUS_TRANSACTION allow you to build the Independent(child) Transaction,started by another. Should be declare in DECLARE section of any subprogram.