Olá Sousa04.
Bom, desta maneira já esta em forma sequencial.
Só o execute immediate faz com que abra uma nova sessão para cada execução. Se isso não for um particularidade de sua aplicação, você pode mudar para:
create or replace PROCEDURE CARGA_DMBIEG AS
BEGIN
-- Dá a carga no DMBIEG com as informações do DWMD
carga_base();
-- EXECUTE IMMEDIATE 'call atualiza_vwmat()';
if valida_pk then
carga_dm_pessoa();
atualiza_dm_pessoa();
carga_ft_pessoa();
carga_ft_outras_despesa();
-- EXECUTE IMMEDIATE 'call carga_ft_outras_despesas_det()';
carga_ft_financeiro();
DBMS_OUTPUT.PUT_LINE('FIM DA CARGA');
else
DBMS_OUTPUT.PUT_LINE('A CARGA NÃO FOI REALIZADA');
END IF;
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('A CARGA NÃO FOI REALIZADA');
END;
Vlw Leonardo Litz