Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ओरेकल एपेक्स में गतिशील कॉलम प्रदर्शित करने का कोई तरीका है

पहले एक सामान्य संकेत:अपना वैरिएबल आउटपुट करें l_sql dbms_output.put_line . का उपयोग करके अपने कंसोल पर या किसी प्रकार की डिबगिंग तालिका का उपयोग करें जहां आप इसे सम्मिलित कर सकते हैं। उस वेरिएबल के डेटा प्रकार के बारे में भी सावधान रहें। यदि आपको SQL का विस्तार करने की आवश्यकता है तो आप उस बिंदु तक पहुंच सकते हैं जहां आपको CLOB . का उपयोग करने की आवश्यकता है varchar2 . के बजाय चर ।

यदि आप अपनी समस्या का पूरी तरह से विश्लेषण करना चाहते हैं तो आपको तालिका संरचना और परीक्षण डेटा की आपूर्ति करने की आवश्यकता होगी, इसलिए मैं आपको सबसे पहले कुछ सामान्य स्पष्टीकरण दूंगा:

Use Generic Column Names ठीक है यदि आपके पास स्तंभों की एक स्थायी, अपरिवर्तनीय राशि है। लेकिन अगर आपके कॉलम का क्रम या यहां तक ​​कि राशि भी बदल सकती है, तो यह एक बुरा विचार है, क्योंकि यदि आपकी क्वेरी Generic Column Count से अधिक कॉलम में परिणत होती है, तो आपका पेज एक त्रुटि दिखाएगा।

विकल्प 1:अपनी क्वेरी में स्तंभ उपनामों का उपयोग करें

अपने PL/SQL Function Body returning SQL Query इस तरह से यह वर्बोज़ डिस्प्ले नामों को इस तरह आउटपुट करता है:

return 'select 1 as "Your verbose column name", 2 as "Column #2", 3 as "Column #3" from dual';

यह इस तरह दिखता है:

इसका नुकसान यह है कि कॉलम नाम भी इस तरह से डिज़ाइनर में दिखाई देते हैं और एपेक्स केवल इन कॉलम नामों को अपडेट करेगा यदि आप फ़ंक्शन को फिर से सत्यापित करते हैं। Your verbose column name . के आंतरिक नाम वाले कॉलम को संदर्भित करने के लिए आपके पास कठिन समय होगा एक प्रक्रिया कोड या गतिशील क्रिया में।

हालांकि यह अभी भी काम करता है, भले ही आप एपेक्स को बताए बिना कॉलम नाम बदलते हैं, उदाहरण के लिए PL/SQL Function Body को बाहरी करके। एक वास्तविक कार्य में।

विकल्प 2:कस्टम कॉलम शीर्षकों का उपयोग करें

थोड़ा छिपा हुआ है, लेकिन पूरी तरह से कस्टम कॉलम हेडिंग का विकल्प भी है। यह लगभग विशेषताओं . के अंत में है आपके रिपोर्ट क्षेत्र का पृष्ठ।

यहां आप एक फ़ंक्शन भी प्रदान कर सकते हैं जो आपके कॉलम नाम लौटाता है। सावधान रहें कि यह फ़ंक्शन एक SQL क्वेरी नहीं लौटाता है जो स्वयं कॉलम नाम देता है, बल्कि इसके बजाय एक कोलन द्वारा अलग किए गए कॉलम नाम लौटाता है ।

इस पद्धति के साथ, डिज़ाइनर में अपने कॉलम को पहचानना और उनका संदर्भ देना आसान है:

विकल्प 3:यह दोनों

जेनेरिक कॉलम नाम बंद करें, अपनी क्वेरी को उन कॉलम नामों को वापस करने दें जिन्हें आसानी से पहचाना और संदर्भित किया जा सकता है, और custom column headings का उपयोग करें। फ़ंक्शन आपके उपयोगकर्ताओं के लिए वर्बोज़ नाम लौटाता है।

मेरी निजी राय

मैं उत्पादन एप्लिकेशन में तीसरे विकल्प का उपयोग कर रहा हूं जहां लोग रिपोर्ट पेज पर शटल आइटम का उपयोग करके कॉलम की मात्रा और क्रम बदल सकते हैं। इसमें कुछ समय लगा, लेकिन अब यह कुछ गतिशील PIVOT . की तरह एक आकर्षण की तरह काम करता है बिना PIVOT




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्केलग्रिड प्रबंधित डेटाबेस होस्टिंग के लिए Oracle क्लाउड जोड़ता है

  2. Oracle SQL - अनुक्रमिक मान श्रेणियों की पहचान करें

  3. एक प्रक्रिया के भीतर एक और पीएल/एसक्यूएल प्रक्रिया को कॉल करना

  4. SQLcl Oracle से PostgreSQL या YugabyteDB में डेटा स्थानांतरित करने के लिए

  5. प्रारूप 20120130 से दिनांक डेटा प्रकार oracle sql . में दिनांक परिवर्तित करने में सहायता चाहिए