Belirli bir ad ölçütüyle eşleşen tüm tablolardaki kayıt sayısını istiyorum. İştePLSQL'de Her Bir Tablo İçin Yürüt
Declare SQLStatement VARCHAR (8000) :='';
BEGIN
SELECT 'SELECT COUNT (*) FROM ' || Table_Name || ';'
INTO SQLStatement
FROM All_Tables
WHERE 1=1
AND UPPER (Table_Name) LIKE UPPER ('MSRS%');
IF SQLStatement <> '' THEN
EXECUTE IMMEDIATE SQLStatement;
END IF;
END;
/
inşa SQL olduğu Fakat aşağıdaki hatayı alıyorum: çalışır, böylece
Error at line 1
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 3
Script Terminated on line 1.
nasıl eşleşen tüm tablolar için bu değiştiririm?
Güncelleme: bir cevap aldı dayanarak
, şu çalıştım ama bunu yapamazsınız all_tables
seçerek ediyorsanız ben DBMS_OUTPUT
declare
cnt number;
begin
for r in (select table_name from all_tables) loop
dbms_output.put_line('select count(*) from CDR.' || r.table_name);
end loop;
end;
/
Dinamik ifadenizin sonunda yarı kalın harf olmadığından emin olun. Hemen yürütme, orada varsa bir hata döndürür. –
Dmbs çıkışı etkin mi? Çıktınızı görmek için önce bunu yapmanız gerekebilir. –