Oracle Database SQL Certified Associate
1 Introduction to SQL
1-1 Overview of SQL
1-2 History of SQL
1-3 SQL Standards
2 SQL Data Types
2-1 Numeric Data Types
2-2 Character Data Types
2-3 Date and Time Data Types
2-4 Large Object (LOB) Data Types
2-5 Miscellaneous Data Types
3 Creating and Managing Tables
3-1 Creating Tables
3-2 Modifying Tables
3-3 Dropping Tables
3-4 Table Constraints
3-5 Temporary Tables
4 Data Manipulation Language (DML)
4-1 Inserting Data
4-2 Updating Data
4-3 Deleting Data
4-4 Selecting Data
4-5 Using Subqueries
5 Data Control Language (DCL)
5-1 Granting Privileges
5-2 Revoking Privileges
6 Data Definition Language (DDL)
6-1 Creating Tables
6-2 Altering Tables
6-3 Dropping Tables
6-4 Creating Indexes
6-5 Dropping Indexes
6-6 Creating Views
6-7 Dropping Views
7 SQL Functions
7-1 Single-Row Functions
7-2 Aggregate Functions
7-3 Group Functions
7-4 Analytical Functions
8 Joins and Subqueries
8-1 Inner Joins
8-2 Outer Joins
8-3 Self-Joins
8-4 Cross Joins
8-5 Subqueries
9 Set Operators
9-1 UNION
9-2 UNION ALL
9-3 INTERSECT
9-4 MINUS
10 Grouping and Aggregation
10-1 GROUP BY Clause
10-2 HAVING Clause
10-3 ROLLUP and CUBE
10-4 GROUPING SETS
11 Transactions and Concurrency
11-1 Transaction Control Statements
11-2 Locking and Concurrency
11-3 Isolation Levels
12 Oracle SQL Developer
12-1 Overview of Oracle SQL Developer
12-2 Using SQL Worksheet
12-3 Managing Connections
12-4 Running Scripts
13 Advanced SQL Topics
13-1 Recursive Queries
13-2 Model Clause
13-3 PIVOT and UNPIVOT
13-4 Flashback Query
14 Performance Tuning
14-1 Query Optimization
14-2 Indexing Strategies
14-3 Analyzing Query Performance
15 Security and Auditing
15-1 User Management
15-2 Role Management
15-3 Auditing SQL Statements
16 Backup and Recovery
16-1 Backup Strategies
16-2 Recovery Strategies
16-3 Using RMAN
17 Oracle Database Architecture
17-1 Overview of Oracle Database Architecture
17-2 Memory Structures
17-3 Process Structures
17-4 Storage Structures
18 PLSQL Basics
18-1 Introduction to PLSQL
18-2 PLSQL Block Structure
18-3 Variables and Data Types
18-4 Control Structures
18-5 Exception Handling
19 Oracle SQL Certification Exam Preparation
19-1 Exam Objectives
19-2 Sample Questions
19-3 Practice Tests
19-4 Exam Tips
Temporary Tables in Oracle SQL

Temporary Tables in Oracle SQL

Temporary tables in Oracle SQL are used to store data temporarily for the duration of a session or a transaction. They are particularly useful for storing intermediate results or for managing large datasets that need to be processed in stages. Understanding temporary tables can significantly enhance your ability to manage complex data operations efficiently.

1. Session-Specific Temporary Tables

Session-specific temporary tables are created with the GLOBAL TEMPORARY clause and are visible only to the session that created them. Data stored in these tables is automatically deleted when the session ends. This makes them ideal for storing data that is only needed for the duration of a user session.

Example:

Suppose you are developing a web application where users need to perform complex calculations. You can use a session-specific temporary table to store intermediate results:

CREATE GLOBAL TEMPORARY TABLE temp_calculations (
    calculation_id NUMBER,
    result NUMBER
) ON COMMIT PRESERVE ROWS;
    

In this example, the temp_calculations table will store data only for the duration of the user's session, and the data will be automatically cleared when the session ends.

2. Transaction-Specific Temporary Tables

Transaction-specific temporary tables are also created with the GLOBAL TEMPORARY clause but are visible only for the duration of a transaction. Data stored in these tables is automatically deleted when the transaction is committed or rolled back. This makes them suitable for storing data that is only needed for the duration of a single transaction.

Example:

Consider a financial application where you need to perform a series of calculations within a single transaction. You can use a transaction-specific temporary table to store intermediate results:

CREATE GLOBAL TEMPORARY TABLE temp_transaction_data (
    transaction_id NUMBER,
    amount NUMBER
) ON COMMIT DELETE ROWS;
    

In this example, the temp_transaction_data table will store data only for the duration of the transaction, and the data will be automatically cleared when the transaction is committed or rolled back.

3. Temporary Tables vs. Regular Tables

While regular tables are permanent and store data across sessions and transactions, temporary tables are designed for temporary data storage. Regular tables are suitable for long-term data storage and retrieval, while temporary tables are ideal for intermediate data processing and temporary data storage.

Example:

Imagine you are managing a large dataset that needs to be processed in multiple stages. You can use a combination of regular and temporary tables to manage the data efficiently:

CREATE TABLE permanent_data (
    data_id NUMBER,
    data_value VARCHAR2(100)
);

CREATE GLOBAL TEMPORARY TABLE temp_processing_data (
    data_id NUMBER,
    processed_value VARCHAR2(100)
) ON COMMIT PRESERVE ROWS;
    

In this example, the permanent_data table stores the original dataset, while the temp_processing_data table stores intermediate processing results that are only needed for the duration of the session.

Understanding and utilizing temporary tables effectively can significantly enhance your ability to manage complex data operations in Oracle SQL. By leveraging session-specific and transaction-specific temporary tables, you can optimize data processing and ensure efficient use of database resources.