2013-08-03 8 views

उत्तर

19

आप एक स्क्रिप्ट, विशेष रूप से, लूप लिख सकते हैं, जिसमें आप user_tables से Table_name का चयन करते हैं और इस लूप को पुन: सक्रिय करते हैं, और उन्हें छोड़ने के लिए "तुरंत निष्पादित करें" कमांड का उपयोग करें।

लेकिन मैं इस सुझाव है - एसक्यूएल उपकरण में

select 'drop table ' || table_name || ';' from user_tables where table_name like 'TBL_%' 

तो फिर तुम इस क्वेरी के उत्पादन में कॉपी करें और अपने एसक्यूएल संपादक में पेस्ट करना, और निष्पादित करते हैं। याद रखें, अगर एसक्यूएल + आपका संपादक है, यदि आप उन्हें सभी पेस्ट करते हैं, तो वे निष्पादित करना शुरू कर देंगे। हो सकता है कि आप इसे नोटपैड का उपयोग पहले समीक्षा और संपादित करने के लिए करना चाहते हैं।

लेकिन आप एक ही कमांड में केवल एक से अधिक टेबल नहीं छोड़ सकते हैं। ड्रॉप तालिका http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9003.htm

7
BEGIN 

    --Bye Tables! 
    FOR i IN (SELECT ut.table_name 
       FROM USER_TABLES ut) LOOP 
    EXECUTE IMMEDIATE 'drop table '|| i.table_name ||' CASCADE CONSTRAINTS '; 
    END LOOP; 

END; 
+0

के साथ जुड़े अन्य विकल्पों के लिए इस लिंक की जाँच करें मैं 3 साल पहले मेरी मूल जवाब> में इस तकनीक का वर्णन किया। और मैंने इंगित किया कि डेटा के साथ काम करते समय कभी-कभी खतरनाक हो सकता है http://stackoverflow.com/a/18030453/1704458 –

+0

यह एक डाउनवोट प्राप्त करता है, क्योंकि उपयोगकर्ता * विशेष रूप से * केवल "टीबीएल_" से शुरू होने वाली तालिकाओं के लिए पूछा जाता है - यह होगा सभी हटा दो! – theMayer

संबंधित मुद्दे