/*
Gostei da dica da store function exclusao de JotaComm
Baseado nas mesma function incrementei algumas funcionalidades.
*/

DROP FUNCTION IF EXISTS public.exclusao(esquema_tabelax VARCHAR(255),
campox VARCHAR(255), idx INTEGER);
CREATE OR REPLACE FUNCTION public.exclusao(esquema_tabelax
VARCHAR(255), campox VARCHAR(255), idx INTEGER)
RETURNS BOOLEAN AS $$

DECLARE

  ds_comando   TEXT;
  deletado     BIGINT;

BEGIN

     IF (esquema_tabelax IS NULL) THEN
          RAISE EXCEPTION 'ESQUEMA TABELA COM VALOR NULO!'; -- caso o
parametro venha nulo
     END IF;

     IF (campox IS NULL) THEN
          RAISE EXCEPTION 'CAMPO COM VALOR NULO!'; -- caso o parametro
venha nulo
     END IF;

     IF (idx IS NULL) THEN
          RAISE EXCEPTION 'ID COM VALOR NULO!'; -- caso o parametro venha nulo
     END IF;


     ds_comando     := 'DELETE FROM ' || esquema_tabelax || ' WHERE '
|| campox || '=' || idx;

        EXECUTE ds_comando;

        GET DIAGNOSTICS deletado = ROW_COUNT;
        
        IF deletado > 0 THEN

                RAISE NOTICE '%', ds_comando;
                RAISE NOTICE 'Total de registro(s) deletado(s): %',deletado;
                RETURN TRUE;

        END IF;
        
     RAISE NOTICE '%', ds_comando;
     RAISE NOTICE 'Total de registro(s) deletado(s): %',deletado;
        RAISE NOTICE 'O registro % não foi encontrado. NADA FOI 
DELETADO!!.',idx;
        RETURN FALSE;

END;
$$ LANGUAGE 'plpgsql' RETURNS NULL ON NULL INPUT
;
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a