2015-06-28 6 views
5

मेरी समस्या यह है कि मेरे पास एक ओरेकल, रीडोनली डीबी मारने वाला कस्टम एसक्यूएल धावक है।सीमित नियंत्रण के साथ ओरेकल व्यू परिभाषा प्राप्त करें

मैं एक दृश्य की परिभाषा प्राप्त करना चाहता हूं।

select TEXT 
FROM all_VIEWS 
and VIEW_NAME = '<view_name>'; 

यह मुझे सीमित पाठ देता है। इतने सारे पात्रों का अधिकतम, शायद 100. सभी विचार इस से अधिक लंबे हैं।

मुझे मिली सहायता फ़ाइल ने मुझे लगता है कि पूरे क्षेत्र को कैप्चर करने से पहले 'सेट 10000' जोड़ना दिखाता है।

SQL> set long 10000 

SQL> select TEXT 
    2 FROM all_VIEWS 
    3 and VIEW_NAME = '<view_name>'; 

मैं के बाद से मैं एक और खिड़की के माध्यम से चल रहा हूँ set long 10000 हिट करने के लिए पहुँच नहीं है। क्या मेरी सीमित क्षमता के साथ पूर्ण परिभाषा पाने का कोई और तरीका है?

+0

प्रश्न में एक वाक्यविन्यास त्रुटि प्रतीत होती है। कोई WHERE क्लॉज नहीं है, लेकिन कीवर्ड का उपयोग किया गया है। सही क्वेरी टेक्स्ट सभी_VIEWS से चुनें VIEW_NAME = ''; – Mandar

उत्तर

5

आपकी समस्या दृश्य परिभाषा वाला लंबा स्तंभ है।

आप एक CLOB

select DBMS_METADATA.GET_DDL ('VIEW','view_name','owner') from dual; 
0

@DBMS_METADATA.GET_DDL की Marmite के सुझाव का उपयोग करना, और उपकरण आप केवल उपयोग कर रहे हैं आप एक समय में 100 वर्ण को पुनः प्राप्त करने देता है यह सोचते हैं के रूप में देखने के पाठ पाने के लिए DBMS_METADATA पैकेज का उपयोग कर सकते हैं, निम्नलिखित को अपना पूरा दृश्य पुनर्प्राप्त करना चाहिए:

SELECT view_name, LEVEL "Line No", 
DBMS_LOB.SUBSTR(view_clob, 100 ,1 + (LEVEL-1)*100) line_text FROM (
    SELECT view_name, owner, 
    DBMS_METADATA.GET_DDL('VIEW', view_name, owner) view_clob 
    FROM all_views WHERE view_name = '<view_name>' 
) CONNECT BY LEVEL <= CEIL(LENGTHB(view_clob)/100) ORDER BY LEVEL; 
संबंधित मुद्दे