Since you the action switches from SQL to PL/SQL to enforce the trigger, it sounds like a context switch to me.
FYI: This can be improved somewhat by adding "and rownum < 2 " into the WHERE clauses of these. There will be noticable improvement when there are many child rows. Jared [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 04/01/2003 09:48 AM Please respond to ORACLE-L To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]> cc: Subject: Do triggers cause a context switch between SQL & PL/SQL Question: If some idiot decides to circumvent Oracle's referential integrity and re-implement it by using triggers (insert, update, delete) that checks the foreign (parent/child) key fields in other tables like this, declare numrows INTEGER; begin -- ApplicationForm is used if the state and other criteria match that in -- ApplicationFormCriteria ON PARENT DELETE RESTRICT select count(*) into numrows from ApplicationFormCriteria where ApplicationFormCriteria.applicationFormId = :old.applicationFormId; if (numrows > 0) then raise_application_error( -20343, 'Database Integrity Violation - Cannot DELETE row in Table ''ApplicationForm'' because referencing row exists in table ''ApplicationFormCriteria'' for Primary Key (applicationFormId)=' || :old.applicationFormId ); end if; end; would it cause context switching between the SQL & PL/SQL engines? Yes, some genius did this in one of our databases. Two hundred third/fourth normal form tables enforced by 800 triggers... I have him registered to be stoned in public. -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).