diff --git a/mateus_jardim/script_sql/REQ000000353288.sql b/mateus_jardim/script_sql/REQ000000353288.sql index 81dbc98..5ac7caa 100644 --- a/mateus_jardim/script_sql/REQ000000353288.sql +++ b/mateus_jardim/script_sql/REQ000000353288.sql @@ -1,10 +1,90 @@ 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 = '3808'; + 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 - RAISE WARNING 'Erro ao alterar prestacao de contas: %', SQLERRM; + -- Interrompe o bloco e exibe o erro + RAISE EXCEPTION 'Erro ao executar operação: %', SQLERRM; END; $$; \ No newline at end of file