I believe the global temporary are the same. They will give you private access to the temporary table that dies when the session ends:
The data in the global temporary table is private, so the data inserted by the session may only be available for that session. Session-specific rows in the global temporary table can be saved for the entire session or only for the current transaction. The ON COMMIT DELETE ROWS clause indicates that data should be deleted at the end of the transaction.
After reading the question a few more times, I think this is the main difference, and maybe your problem is that temporary tables are stored between sessions. Thus, an exact equivalent is not possible, as you might imagine in Oracle, it would be something like:
CREATE GLOBAL TEMPORARY TABLE my_temp_table ON COMMIT DELETE ROWS select * from other table;
This table will live until it is discarded even through sessions, although there is no data in it. Instead, you will need to create a temporary table in advance.
source share