REQ000000353288.sql 2.05 KB
Newer Older
1
DO $$
2 3 4 5 6
DECLARE
    v_inuid_origem INT := 1;
    v_inuid_destino INT := 3808;
    v_rows_updated INT;
    v_rows_inserted INT;
MATEUS GUIZELINI JARDIM committed
7
BEGIN
8
    -- 1️⃣ Atualiza registros existentes
9 10
    UPDATE par3.instrumentounidade
       SET itrid = '1'
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
     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;

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