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; $$;