Mostrando postagens com marcador Banco de Dados. Mostrar todas as postagens
Mostrando postagens com marcador Banco de Dados. Mostrar todas as postagens

terça-feira, 1 de outubro de 2019

Habilitar o Python no PostgreSQL


  • Cenário

Windows 10
PostgreSQL 9.5 (instalado em C:\Program Files\PostgreSQL\9.5)
Python 3.7.4 - Windows x86-64 executable installer (python-3.7.4-amd64.exe - instalado em C:\Python\Python37)

  • Problema 1

Ao executar o comando:

create extension plpython3u;

Ocorre o erro:

ERROR:  could not load library "C:/Program Files/PostgreSQL/9.5/lib/plpython3.dll": unknown error 126

segunda-feira, 4 de março de 2019

Função para validação do CNS (Cartão Nacional de Saúde)


drop function if exists fnc_valida_cns_aux(pNumero text);

create or replace function fnc_valida_cns_aux(pNumero text) returns int as 
$body$
declare
  vArray char[];
  vSoma int;
  vNum int;
  vNum2 int;
begin

  vArray := regexp_split_to_array(pNumero, '');
  vSoma := 0;
  
  for i in array_lower(vArray, 1) .. array_length(vArray, 1) loop  
    vNum := vArray[i];
    vNum2 := 15 - i + 1;
    vSoma := vSoma + (vNum * vNum2);    
  end loop;        

  return vSoma;

end;
$body$
language 'plpgsql';

drop function if exists fnc_valida_cns_def(pCNS text); 

create or replace function fnc_valida_cns_def(pCNS text) returns boolean as 
$body$
declare
  vPIS text;
  vSoma int;
  vResto int;
  vDV int;
  vResultado text;
  vRetorno boolean;  
begin

  vPIS := substring(pCNS, 1, 11);
  vSoma := fnc_valida_cns_aux(vPIS);
  vResto := mod(vSoma, 11);  
  vDV := 11 - vResto;
  
  if vDV = 11 then
    vDV := 0;
  end if;
  
  if vDV = 10 then
    vSoma := fnc_valida_cns_aux(vPIS) + 2;
    vResto := mod(vSoma, 11);  
    vDV := 11 - vResto;  
    vResultado := vPIS || '001' || cast(vDV as text);
  else
    vResultado := vPIS || '000' || cast(vDV as text);
  end if;
  
  vRetorno := pCNS = vResultado; 
  return vRetorno;

end;
$body$
language 'plpgsql';

drop function if exists fnc_valida_cns_prov(pCNS text); 

create or replace function fnc_valida_cns_prov(pCNS text) returns boolean as 
$body$
declare
  vSoma int;
  vResto int;
  vRetorno boolean;  
begin

  vSoma := fnc_valida_cns_aux(pCNS);
  vResto := mod(vSoma, 11);
  
  vRetorno := vResto = 0; 
  return vRetorno;

end;
$body$
language 'plpgsql';

drop function if exists fnc_valida_cns(pCNS text); 

create or replace function fnc_valida_cns(pCNS text) returns boolean as 
$body$
declare
  vRetorno boolean;
  vCNS text;
begin

  vRetorno := false;
  
  vCNS := substring(regexp_replace(pCNS, '[^0-9]+', '', 'g'), 1, 15);
 
  if length(vCNS) = 15 then
  
    if substring(vCNS, 1, 1) in ('1', '2') then
      vRetorno := fnc_valida_cns_def(vCNS);
    elsif substring(vCNS, 1, 1) in ('7', '8', '9') then
      vRetorno := fnc_valida_cns_prov(vCNS);
    end if;
  
  end if;

  return vRetorno;

end;
$body$
language 'plpgsql';


Referências:

http://esusab.github.io/integracao/ledi/regras/algoritmo_CNS.html
http://www.yanaga.com.br/2012/06/validacao-do-cns-cartao-nacional-de.html

sexta-feira, 15 de junho de 2012

Criando Auditoria de Tabelas no PostgreSQL

Hoje irei dar um exemplo de criação auditoria de tabelas no PostgreSQL.

A ideia deste exemplo de auditoria é utilizar uma única função de trigger para auditar N tabelas, ou seja, toda trigger de auditoria em qualquer tabela irá chamar sempre a mesma função de trigger para auditá-la, o que facilita manutenção da rotina de auditoria e possibilita manter um padrão de auditoria.

sexta-feira, 14 de outubro de 2011

Criando um Banco de Dados no PostgreSQL no Windows

Hoje irei falar sobre a criação de um Banco de Dados no PostgreSQL no Windows.


Existe várias maneiras/meios de se criar um banco de dados. Dentre elas irei falar sobre:
  • pgAdmin;
  • SQL Shell (psql);
  • createdb;

quinta-feira, 29 de setembro de 2011

Configurando Variáveis de Ambiente para o PostgreSQL no Windows

Hoje irei falar sobre a configuração de variáveis de ambiente para o PostgreSQL no Windows.

O post será dividido em 2 partes:
  • Acessando as Propriedades do Sistema;
  • Configurando as Variáveis de Ambiente;

quarta-feira, 31 de agosto de 2011

Instalando o PostgreSQL no Windows

Hoje irei falar sobre a instalação do PostgreSQL no Windows. Pretendo que este post possa servir como um tutorial que descreva passo a passo como instalar o PostgreSQL no Windows.


Neste tutorial iremos descrever a instalação do PostgreSQL 9.0.4-1, que pode ser baixado através de sua página oficial: http://www.postgresql.org/, onde, também é possível encontrar sua documentação, outras informações, etc.

sábado, 30 de julho de 2011

quinta-feira, 28 de julho de 2011

quarta-feira, 27 de julho de 2011

Configurando Slony-I com PostgreSQL no Windows - Parte 1

Olá pessoal, sejam bem vindos ao Blog. Este é meu primeiro post neste Blog e espero que gostem.

Quando se trata do primeiro post, logo vem em mente a questão: "O que postar no primeiro post?". Então para começar resolvi postar um tutorial que fiz há algum tempo atrás.

Constantemente procurava na internet como montar uma replicação que realmente funcionasse com o Slony no Windows, porém não achava nada que funcionasse realmente. Então fui a luta, após muitos testes e pegando um pouco do que cada artigo que encontrava na internet falava, consegui montar a replicação. Sendo assim montei este pequeno e bem simples tutorial de como se fazer a replicação de dados utilizando o Slony no Windows.

 Bom, chega de história e vamos por a mão na massa. Neste tutorial foram utilizados:
  • PostgreSQL 8.2.5;
  • Slony-I 1.2.11;
  • pgAdmin III.