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
के साथ सक्षम किया है इस ब्लॉक को क्रियान्वित करने से पहले।