DO $$
DECLARE
    v_inuid_origem INT := 1;
    v_inuid_destino INT := 3808;
    v_rows_updated INT;
    v_rows_inserted INT;
BEGIN
    -- 1️⃣ Atualiza registros existentes
    UPDATE par3.instrumentounidade
       SET itrid = '1'
     WHERE inuid = v_inuid_destino;
    GET DIAGNOSTICS v_rows_updated = ROW_COUNT;

    IF v_rows_updated = 0 THEN
        RAISE EXCEPTION 'Nenhum registro atualizado em par3.instrumentounidade';
    END IF;

    -- 2️⃣ Insere novos registros na tabela instrumentounidade
    INSERT INTO par.instrumentounidade ( 
        inuid, 
        itrid, 
        inudata, 
        estuf, 
        muncod, 
        mun_estuf, 
        docid, 
        liberatramitobra, 
        inutermoliberado, 
        inucnpj, 
        inudescricao
    )
    SELECT  
        v_inuid_destino AS inuid, 
        itrid, 
        inudata, 
        estuf, 
        muncod, 
        mun_estuf, 
        docid, 
        liberatramitobra, 
        inutermoliberado, 
        inucnpj, 
        inudescricao
    FROM par.instrumentounidade
    WHERE inuid = v_inuid_origem;
    GET DIAGNOSTICS v_rows_inserted = ROW_COUNT;

    IF v_rows_inserted = 0 THEN
        RAISE EXCEPTION 'Nenhum registro inserido em par.instrumentounidade';
    END IF;

    -- 3️⃣ Insere novos registros na tabela dadosunidade
    INSERT INTO par.dadosunidade (
        inuid, 
        entid, 
        dundata, 
        usucpf, 
        dutid, 
        sgmid, 
        dunfuncao,
        duncpf, 
        dunemail, 
        dunnome, 
        dunsegmento,
        duperfil_especial,
        dudataperfil_especial
    )
    SELECT  
        v_inuid_destino AS inuid, 
        entid, 
        dundata, 
        usucpf, 
        dutid, 
        sgmid, 
        dunfuncao,
        duncpf, 
        dunemail, 
        dunnome, 
        dunsegmento,
        duperfil_especial,
        dudataperfil_especial
    FROM par.dadosunidade
    WHERE inuid = v_inuid_origem;

EXCEPTION
    WHEN OTHERS THEN
        -- Interrompe o bloco e exibe o erro
        RAISE EXCEPTION 'Erro ao executar operação: %', SQLERRM;
END;
$$;