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

sqlplus से pl/sql के भीतर गतिशील निष्पादन आउटपुट प्रदर्शित करें

इसे प्रदर्शित करने के लिए आपको अपने चयन से परिणाम पुनर्प्राप्त करने की आवश्यकता होगी। आप सिंथैक्स EXECUTE IMMEDIATE sql_query INTO var1, var2.. varn का उपयोग करेंगे। . हालाँकि आपके मामले में संकलन समय पर स्तंभों की संख्या अज्ञात है।

आप इससे निपटने के कई तरीके हैं:

  1. आप आउटपुट के कॉलम पर DBMS_SQL और लूप का उपयोग कर सकते हैं।
  2. आप एक्सएमएल के सीएसवी जैसे पठनीय प्रारूप के साथ सभी परिणामों के साथ एक कॉलम बना सकते हैं

मैं 1 डेमो करूंगा:

SQL> DEFINE scheme_name=SYS
SQL> DEFINE table_name=ALL_OBJECTS
SQL> DECLARE
  2     sql_query VARCHAR2(32767);
  3     l_cursor  NUMBER := dbms_sql.open_cursor;
  4     l_dummy NUMBER;
  5     l_columns dbms_sql.desc_tab;
  6     l_value NUMBER;
  7  BEGIN
  8     sql_query := 'select ';
  9     FOR column_rec IN (SELECT column_name
 10                          FROM ALL_TAB_COLS
 11                         WHERE owner = '&scheme_name'
 12                           AND table_name = '&table_name'
 13                           AND data_type = 'NUMBER') LOOP
 14        sql_query := sql_query || 'SUM(' || column_rec.column_name
 15                     || ') "SUM(' || column_rec.column_name || ')", ';
 16     END LOOP;
 17     sql_query := substr(sql_query, 0, length(sql_query) - 2)
 18                  || ' from &scheme_name' || '.&table_name';
 19     dbms_sql.parse(l_cursor, sql_query, dbms_sql.NATIVE);
 20     dbms_sql.describe_columns(l_cursor, l_dummy, l_columns);
 21     FOR i IN 1..l_columns.count LOOP
 22        dbms_sql.define_column(l_cursor, i, l_columns(i).col_type);
 23     END LOOP;
 24     l_dummy := dbms_sql.execute_and_fetch(l_cursor, TRUE);
 25     FOR i IN 1..l_columns.count LOOP
 26        dbms_sql.column_value(l_cursor, i, l_value);
 27        dbms_output.put_line(l_columns(i).col_name ||' = '||l_value);
 28     END LOOP;
 29  END;
 30  /

SUM(DATA_OBJECT_ID) = 260692975
SUM(OBJECT_ID) = 15242783244



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विशिष्ट LISTAGG जो चयन सूची में एक सबक्वेरी के अंदर है

  2. प्रदर्शन और मापनीयता मुद्दों के बिना डेटाबेस गतिविधि का ऑडिट कैसे करें?

  3. नामांकित निर्देशिका के बिना dbms_xmldom.writetofile का उपयोग करें

  4. एसएसआईएस में ओरेकल से SQL2005 डेटाटाइम फ़ील्ड ओवरफ्लो हो जाता है

  5. मूल्यों के क्रम को ध्यान में रखते हुए समूह पंक्तियाँ