Tenho tres tabelas A, B e C. a tabela C tem uma quantidade de registros que contem na tabela A e B e preciso comparar se essas quantidades batem mesmo. Pensei em algo assim, mas acho que fica muito lento, alguém pode me ajudar a montar essa rotina de uma forma mais rápida??
PROCEDURE CARGA_LANCAMENTO IS
CURSOR c_lancamento IS
SELECT *
FROM A;
CURSOR c_item IS
SELECT *
FROM B;
CURSOR c_controle IS
SELECT P.qtde_documento qtd_doc, P.qtde_itens qtd_item
FROM C P;
v_cont_lanc number := 0;
v_cont_item number := 0;
BEGIN
for c_lancamento_rec in c_lancamento loop
select count(*)
into v_cont_lanc
from A;
for c_controle_rec in c_controle loop
if c_controle_rec.qtd_doc <> v_cont_lanc then
--insere na tabela de erro
else
insert into A;
end if;
end loop;
end loop;
for c_item_rec in c_item loop
select count(*)
into v_cont_item
from B;
for c_controle_rec in c_controle loop
if c_controle_rec.qtd_item <> v_cont_item then
--insere na tabela de erro
else
insert into B;
end if;
end loop;
end loop;
EXCEPTION
WHEN others THEN
-- insert na tabela de log_erro
END; -- Procedure