2010-07-07 16 views
5

मैं एक एसक्यूएल स्क्रिप्ट बनाना चाहता हूं जो मेरे पास पहले से मौजूद डीबी को फिर से बना सकता है। मैं डेटा के बिना डीबी को फिर से बनाना चाहता हूं।ओरेकल डेटाबेस संरचना का एसक्यूएल निर्यात

तो क्या उपयोगकर्ता के डीबी निर्यात करने के एसकप्लस के साथ वैसे भी है?

+0

आप केवल एक डीडीएल निर्यात चाहते हैं? अर्थात। इसमें डेटा के बिना डीबी स्कीमा? –

उत्तर

7

दो बुनियादी दृष्टिकोण हैं।

पहला डंप फ़ाइल निर्यात करना है। यह Datapump उपयोगिता के साथ किया जा सकता है:

$ expdp apc/pw directory=data_dump_dir dumpfile=apc_20100707.dmp content=METADATA_ONLY 

Find out more

डेटापंप ओरेकल 10 जी में पेश किया गया था। डेटाबेस के पुराने संस्करणों में हम एक ही काम करने के लिए EXP उपयोगिता का उपयोग कर सकते हैं।

$ exp apc/pw dumpfile=apc_20100707.dmp rows=N 

फ़ाइल हम मिलान impdp (या imp) उपयोगिताओं का उपयोग आयात करने के लिए।

यह ओएस दृष्टिकोण है। वास्तविक एसक्यूएल स्क्रिप्ट उत्पन्न करने के लिए हम ओरेकल 9i में पेश किए गए अंतर्निहित डीबीएमएस_एमटीएडीएटीए पैकेज का उपयोग कर सकते हैं। यह थोड़ा और काम है लेकिन निर्यातित वस्तुओं के ब्योरे पर बहुत अधिक नियंत्रण प्रदान करता है। Find out more

10

this blog post से, ऐसा लगता है कि dbms_metadata नामक एक पैकेज है जो create table SQL उत्पन्न कर सकता है। उदाहरण:

set pagesize 0 
set long 90000 
set feedback off 

set echo off 
spool filename.sql 
connect username/password; 
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) 
    FROM USER_TABLES u; 
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) 
    FROM USER_INDEXES u; 
spool off; 
2

एसक्यूएल स्क्रिप्ट बनाने के लिए आप एसक्यूएल डेवलपर का भी उपयोग कर सकते हैं, जैसा कि here वर्णित है।

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