Temporary tables generally contain all of the features that ordinary tables have like triggers, join cardinality, information about rows and block etc. the main difference is that the temporary tables can't have foreign keys related to other tables.
CREATE GLOBAL TEMPORARY TABLE table_name ( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], ... column_n datatype [ NULL | NOT NULL ] );
table_name: The parameter table_name specifies the global temporary table that you want to create.
column1, column2, ... column_ n: It specifies the column that you want create in the global temporary table. Every column must have a datatype and should be defined as NULL or NOTNULL. If the value is left blank, it is by default treated as NULL.
The following example specifies how to create a global temporary table
CREATE GLOBAL TEMPORARY TABLE students ( student_id numeric(10) NOT NULL, student_name varchar2(50) NOT NULL, student_address varchar2(50) );