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;
/
Als u kiest uit all_tables
je kunt er niet op rekenen dat je de benodigde beurzen hebt gekregen om uit de tafelnaam te kiezen. Controleer daarom op de ORA-00942: table or view does not exist
fout gegooid.
Wat betreft de oorzaak van uw fout:u krijgt deze fout omdat de select-instructie een resultatenset retourneert met meer dan één rij (één voor elke tabel) en u kunt zo'n resultatenset niet toewijzen aan een varchar2.
Zorg er trouwens voor dat je dbms_output inschakelt met SET SERVEROUT ON
voordat u dit blok uitvoert.