What is Global Temporary Tables???
Applications
often use some form of temporary data store for processes that are to
complicated to complete in a single pass. Often, these temporary stores are
defined as database tables or PL/SQL tables. In Oracle 8i, the maintenance and
management of temporary tables can be delegated to the server by using Global
Temporary Tables.
Creation of Global Temporary Tables
The data in
a global temporary table is private, such that data inserted by a session can
only be accessed by that session. The session-specific rows in a global
temporary table can be preserved for the whole session, or just for the current
transaction. The
ON COMMIT DELETE
ROWS
clause
indicates that the data should be deleted at the end of the transaction.CREATE GLOBAL TEMPORARY TABLE my_temp_table (
column1 NUMBER,
column2 NUMBER
) ON COMMIT DELETE ROWS;
In
contrast, the
ON COMMIT PRESERVE
ROWS
clause
indicates that rows should be preserved until the end of the session.CREATE GLOBAL TEMPORARY TABLE my_temp_table (
column1 NUMBER,
column2 NUMBER
) ON COMMIT PRESERVE ROWS;
Miscellaneous Features
- If the TRUNCATE statement is issued against a temporary table, only the session specific data is trucated. There is no affect on the data of other sessions.
- Data in temporary tables is automatically delete at the end of the database session, even if it ends abnormally.
- Indexes can be created on temporary tables. The content of the index and the scope of the index is that same as the database session.
- Views can be created against temporary tables and combinations of temporary and permanent tables.
- Temporary tables can have triggers associated with them.
- Export and Import utilities can be used to transfer the table definitions, but no data rows are processed.
- There are a number of restrictions related to temporary tables but these are version specific.
No comments:
Post a Comment