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

PLSQL में प्रत्येक तालिका के लिए निष्पादित करें

declare 
  cnt number;
begin
  for r in (select owner, table_name from all_tables
             where upper(table_name) like ('%MSRS%')) loop

    execute immediate 'select count(*) from "'
            || r.owner || '"."'
            || r.table_name || '"'
            into cnt;

    dbms_output.put_line(r.owner || '.' || r.table_name || ': ' || cnt);
  end loop;
end;
/

यदि आप all_tables . से चयन कर रहे हैं आप तालिका के नाम से चयन करने के लिए आवश्यक अनुदान दिए जाने पर भरोसा नहीं कर सकते। इसलिए आपको ORA-00942: table or view does not exist त्रुटि फेंक दी गई।

आपकी त्रुटि के कारण के रूप में:आपको यह त्रुटि इसलिए मिलती है क्योंकि चयन कथन एक से अधिक पंक्तियों (प्रत्येक तालिका के लिए एक) के साथ एक परिणाम सेट देता है और आप इस तरह के परिणाम को varchar2 पर सेट नहीं कर सकते।

वैसे, सुनिश्चित करें कि आपने dbms_output को SET SERVEROUT ON के साथ सक्षम किया है इस ब्लॉक को क्रियान्वित करने से पहले।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल पीएल/एसक्यूएल आईपीवी 6 सीडीआर के लिए रेंज आईपी की गणना कैसे करें

  2. जब एक तालिका में कोई मान न हो तो दो तालिकाओं को मिलाएं

  3. Oracle varchar मान में किसी वर्ण की घटनाओं की संख्या की गणना कैसे करें?

  4. किसी तालिका में सभी स्तंभ मानों के विशिष्ट मान प्राप्त करने के लिए SQL क्वेरी

  5. SSIS:STRAGG के बिना एक कॉलम आउटपुट के लिए Oracle एकाधिक पंक्तियाँ