The control whether the trigger will fire for a particular session is most elegantly achieved by using the supplied package DBMS_APPLICATION_INFO. The two procedures that are of interest for thios task are SET_CLIENT_INFO and READ_CLIENT_INFO.
If you don't want the trigger to be fired for your session, set a special info string by using SET_CLIENT_INFO procedure. Now in your trigger check if this special infostring is set by using READ_CLIENT_INFO. If you find the particular string to be set, skip ower the trigger logic, othervise execute the trigger normaly.
As far as the second part of your question is concerned, I don't understand exactly what you are tryin to achive, but maybe you should consider usin GLOBAL TEMPORARY TABLEs.
HTH,
Jurij Modic
ASCII a stupid question, get a stupid ANSI
24 hours in a day .... 24 beer in a case .... coincidence?