Scripts úteis Postgres

Publicado por: Vanderson da Silva
Postado: 02-07-2015
Atualizado:03-11-2017

Abaixo segue uma listagem de funções que úteis para serem usadas no Postgres, lista que será atualizada conforme aparecer novos comandos ou consultas.

 

-- Visualição dos processos

SELECT  *

FROM pg_stat_activity

where datname like 'dbsgdoc%'

and pid != pg_backend_pid()

and state = 'idle'

and trim(query) = 'DISCARD ALL'")

 

-- Finaliza processo no banco

SELECT 
    pg_terminate_backend(pid) 
FROM 
    pg_stat_activity 
WHERE 
    -- don't kill my own connection!
    pid <> pg_backend_pid()
    -- don't kill the connections to other databases
    AND datname = 'database_name'
    ;

 

-- Mascara CPF

select to_char(123456789, '000"."000"."000-00');

SELECT 'cpf' || to_char(i,'FM00000000');

 

-- Mascara Monetária

SELECT to_char (3518.35,'FM999G999G990D00');

 

-- Retornar null por último no order by

Postrges - select * from usuario order by telefone desc nulls last

Mysql - select * from usuario order by -(telefone desc) 

 

-- PGSQL rotina insert de select

/**
* Rodar este esquema no banco
* Alterar a data de inicio do evento e a data fim para a data desejada.
*/
DO
$do$
DECLARE
linha tb_empresa%ROWTYPE;
BEGIN
FOR linha IN select * from tb_empresa where tipo_empresa = '1'
LOOP
INSERT INTO tb_pessoa_evento(pessoa_id, tipoevento_id, data_inicio, data_fim, descricao)
VALUES (linha.pessoa_id, 107, 'DD/MM/YYYY 00:00:00', '31/01/2016 23:59:59', 'PERMITE ATUALIZAÇÃO CADASTRAL PJ DE DIREITO PÚBLICO, CRIAÇÂO VIA CARGA NO SISTEMA');
END LOOP;
END
$do$;

--Transalate

translate( upper(cidade), 'áéíóúàèìòùãõâêîôûçÁÉÍÓÚÀÈÌÒÙÃÕÂÊÎÔÛÇ', 'aeiouaeiouaoaeioucAEIOUAEIOUAOAEIOUC') = translate( upper('Brasilia'), 'áéíóúàèìòùãõâêîôûçÁÉÍÓÚÀÈÌÒÙÃÕÂÊÎÔÛÇ', 'aeiouaeiouaoaeioucAEIOUAEIOUAOAEIOUC')

Categoria: PostgreSQL