Example 1: Changing the comment on a query outline SQL> alter outline show_tables cont> comment is 'show the tables query' cont> / 'derived from a stored procedure'; SQL> show outline show_tables SHOW_TABLES Comment: show the tables query derived from a stored procedure Source: -- Rdb Generated Outline : 8-FEB-2002 16:17 create outline SHOW_TABLES id '4D5B5CC5B46C6DD21B0E1999C0EB8BF3' mode 0 as ( query ( -- For loop subquery ( RDB$RELATIONS 0 access path index RDB$REL_REL_NAME_NDX ) ) ) compliance optional ; Example 2: Using the alternate COMMENT ON syntax to change the comment SQL> comment on outline show_tables cont> is 'show the tables query' cont> / 'derived from the stored procedure' cont> / 'SHOW_TABLES'; Example 3: Changing the name of a query outline SQL> alter outline show_tables cont> rename to show_the_tables; SQL> show outline show_the_tables SHOW_THE_TABLES Comment: show the tables query derived from the stored procedure testing new COMMENT ON OUTLINE Source: -- Rdb Generated Outline : 8-FEB-2002 16:17 create outline SHOW_THE_TABLES id '4D5B5CC5B46C6DD21B0E1999C0EB8BF3' mode 0 as ( query ( -- For loop subquery ( RDB$RELATIONS 0 access path index RDB$REL_REL_NAME_NDX ) ) ) compliance optional ; Example 4: This example shows setting a query outline valid after a DROP INDEX First, our stored procedure is executed with the STRATEGY flag defined so we can see that it is using a query outline named MY_ OUTLINE. SQL> set flags 'strategy'; SQL> call my_procedure(); ~S: Outline "MY_OUTLINE" used Aggregate Conjunct Index only retrieval of relation MY_TABLE Index name MY_INDEX [1:1] Now the index that was used by the query (and referenced by the query outline) is dropped. This causes the query outline to be set invalid (as shown by using the WARN_INVALID flag). The query now uses sequential access strategy when the stored procedure is executed. SQL> set flags 'warn_invalid'; SQL> drop index my_index; ~Xw: Outline "MY_OUTLINE" marked invalid (index "MY_INDEX" dropped) SQL> SQL> set flags 'strategy'; SQL> call my_procedure(); ~S: Outline "MY_OUTLINE" is invalid and can not be used Aggregate Conjunct Get Retrieval sequentially of relation MY_TABLE SQL> show outline my_outline MY_OUTLINE Outline has been marked invalid . . . The ALTER OUTLINE ... COMPILE clause is now used to make the outline valid. The first attempt reports that the index is missing. After the index is recreated the COMPILE succeeds. Calling the stored procedure now uses this query outline. SQL> alter outline my_outline compile; %RDB-E-NO_META_UPDATE, metadata update failed -RDMS-F-INDNOTEXI, index MY_INDEX does not exist in this database SQL> -- must redefine the index SQL> create index my_index on my_table (b desc); SQL> alter outline my_outline compile; SQL> call my_procedure(); ~S: Outline "MY_OUTLINE" used Aggregate Conjunct Index only retrieval of relation MY_TABLE Index name MY_INDEX [1:1] SQL> Example 5: Changing the STORED NAME of a query outline in a multischema database This example shows how to change the STORED NAME of a multischema outline. Here we explicitly provide the STORED NAME, however, the same technique can be used when SQL generates a unique STORED NAME for the outline. SQL> attach 'filename mschema'; SQL> create outline SHOW_TABLE cont> stored name SHOW_TABLE_01 cont> on procedure name SHOW_TABLES; SQL> commit; SQL> disconnect all; SQL> attach 'filename mschema MULTISCHEMA IS OFF'; SQL> alter outline SHOW_TABLE_01 cont> rename to SHOW_THE_TABLES; SQL> commit;