Oui, Oracle a des tables temporaires. Voici un lien vers un article AskTom les décrivant et voici la documentation officielle d'Oracle CREATE TABLE.
Cependant, dans Oracle, seules les données dans une table temporaire est temporaire. La table est un objet normal visible par les autres sessions. C'est une mauvaise pratique de créer et de supprimer fréquemment des tables temporaires dans Oracle.
CREATE GLOBAL TEMPORARY TABLE today_sales(order_id NUMBER)
ON COMMIT PRESERVE ROWS;
Oracle 18c a ajouté des tables temporaires privées, qui sont des objets en mémoire à session unique. Voir la documentation pour plus de détails. Les tables temporaires privées peuvent être créées et supprimées dynamiquement.
CREATE PRIVATE TEMPORARY TABLE ora$ptt_today_sales AS
SELECT * FROM orders WHERE order_date = SYSDATE;
Les tables temporaires peuvent être utiles mais elles sont couramment utilisées abusivement dans Oracle. Ils peuvent souvent être évités en combinant plusieurs étapes dans une seule instruction SQL à l'aide de vues en ligne.