Trigger per svuotare la cache del profilo di ottimizzazione

La cache del profilo di ottimizzazione viene automaticamente svuotata ogni volta che una voce in SYSTOOLS.OPT_PROFILE è stata aggiornata o eliminata.

La seguente procedura SQL e i trigger devono essere creati prima che possa verificarsi lo svuotamento automatico della cache del profilo.
   CREATE PROCEDURE SYSTOOLS.OPT_FLUSH_CACHE( IN SCHEMA VARCHAR(128),
                                              IN NAME VARCHAR(128) )
   LANGUAGE SQL
   MODIFIES SQL DATA
   BEGIN ATOMIC
    -- FLUSH stmt (33) + quoted schema (130) + dot (1) + quoted name (130) = 294
    DECLARE FSTMT VARCHAR(294) DEFAULT 'FLUSH OPTIMIZATION PROFILE CACHE '; --

    IF NAME IS NOT NULL THEN
      IF SCHEMA IS NOT NULL THEN
        SET FSTMT = FSTMT || '"' || SCHEMA || '".'; --
      END IF; --

      SET FSTMT = FSTMT || '"' || NAME || '"'; --

      EXECUTE IMMEDIATE FSTMT; --
    END IF; --
   END;

   CREATE TRIGGER SYSTOOLS.OPT_PROFILE_UTRIG AFTER UPDATE ON SYSTOOLS.OPT_PROFILE
   REFERENCING OLD AS O
   FOR EACH ROW
     CALL SYSTOOLS.OPT_FLUSH_CACHE( O.SCHEMA, O.NAME );

   CREATE TRIGGER SYSTOOLS.OPT_PROFILE_DTRIG AFTER DELETE ON SYSTOOLS.OPT_PROFILE
   REFERENCING OLD AS O
   FOR EACH ROW
     CALL SYSTOOLS.OPT_FLUSH_CACHE( O.SCHEMA, O.NAME );