आप सबसे पहले एक संग्रहीत कार्यविधि में एक अस्थायी तालिका क्यों बनाना चाहते हैं?
अन्य डेटाबेस (उदाहरण के लिए SQL सर्वर और MySQL) में अस्थायी तालिकाएँ बनाना अपेक्षाकृत सामान्य है। Oracle में ऐसा करना बहुत दुर्लभ है। लगभग हर मामले में जहां आप Oracle में एक अस्थायी तालिका बनाने के लिए ललचाते हैं, वहाँ एक बेहतर वास्तुशिल्प दृष्टिकोण है। DBA स्टैक पर एक थ्रेड ओवर है जो अस्थायी तालिकाओं के विकल्प और Oracle में उनकी सामान्य रूप से आवश्यकता क्यों नहीं है।
प्रोग्रामेटिक रूप से, आप डायनेमिक SQL का उपयोग करके ऑब्जेक्ट बना सकते हैं
CREATE OR REPLACE PROCEDURE dont_do_this
AS
BEGIN
EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE a( id INTEGER )';
END;
यदि आप गतिशील रूप से एक अस्थायी तालिका बनाते हैं, हालांकि, उस तालिका के प्रत्येक संदर्भ को भी गतिशील SQL के माध्यम से होना चाहिए-- आप सरल SELECT
लिखने में सक्षम नहीं होंगे टेबल के खिलाफ बयान और Oracle में एक अस्थायी तालिका की परिभाषा वैश्विक है इसलिए यह हर सत्र के लिए दृश्यमान है। यदि आपके पास दो अलग-अलग सत्र हैं, दोनों एक ही तालिका बनाने का प्रयास कर रहे हैं, तो दूसरे सत्र में एक त्रुटि होगी। यदि आप उम्मीद करते हैं कि अलग-अलग सत्रों में तालिका की एक अलग परिभाषा होगी, तो आपको और भी समस्याएं होंगी।