[pgbr-geral] Picos de atendimento

2016-11-09 Por tôpico Carlos Antônio
Bom dia, pessoal

Tenho uma tabela com os campos:
...
  hsaequ timestamp without time zone,
  hchde1 timestamp without time zone,
  hsade1 timestamp without time zone,
  hchde2 timestamp without time zone,
  hsade2 timestamp without time zone,
  hrede1 timestamp without time zone,
  hlimov timestamp without time zone,
...

Onde: 
  hsaequ - Hora de saída para o serviço
  hchde1 - Hora de chegada ao destino 1
  hsade1 - Hora de saída do destino 1
  hchde2 - Hora de chegada ao destino 2
  hsade2 - Hora de saída do destino 2
  hrede1 - Hora de retorno ao destino 1
  hlimov - Hora de liberação da equipe


Para determinar o pico de atendimento, eu fiz uma view conforme abaixo: 

...
AS SELECT

num_servico,

-- Horarios de 00 a 23 horas 
CASE
WHEN to_char(hsaequ, '-mm-dd 00'::text || ':00')::timestamp 
BETWEEN to_char(hsaequ, '-mm-dd HH24'::text || ':00')::timestamp AND 
to_char(hlimov, '-mm-dd HH24'::text || ':00')::timestamp THEN 
1
ELSE 
0
END as _00, 

...

CASE
WHEN to_char(hsaequ, '-mm-dd 23'::text || ':00')::timestamp 
BETWEEN to_char(hsaequ, '-mm-dd HH24'::text || ':23')::timestamp AND 
to_char(hlimov, '-mm-dd HH24'::text || ':23')::timestamp THEN 
1
ELSE 
0
END as _23 from servico_recursos 


A intenção desta view é determinar a ocupação da equipe em um determinado 
período.
O que estou fazendo é pegar a parte do campo que representa a hora (em hsaequ e 
hlimov) e contando  hsaequ dentro desse intervalo.
Quando estiver no intervalo, conta 1. Caso contrário, conta 0.

Exemplos de contagem (resultado da view):

hsaequ = 01-12-2013 09:21
hlimov = 01-12-2013 11:21
09:00 = 1
10:00 = 1
11:00 = 1


hsaequ = 01-12-2013 07:05
hlimov = 01-12-2013 13:01
07:00 = 1
08:00 = 1
09:00 = 1
10:00 = 1
11:00 = 1
12:00 = 1
13:00 = 1


Posteriormente, para construir o relatório de ocupação, outrra view se faz 
necessária:
AS SELECT 
...

sum(_00) AS soma_00, 
sum(_01) AS soma_01, 
sum(_02) AS soma_02, 
sum(_03) AS soma_03,
...
sum(_23) AS soma_23

FROM view_picos_hsaequ

WHERE ...


Finalmente, se consegui me fazer entender, gostaria de opiniões e sugestões, e 
se estou correto nesta lógica... 
Se é possível outra lógica mais precisa... Idéias...

Att   Carlos Antônio Pereira





   




___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] record to string

2016-10-27 Por tôpico Carlos Antônio
>>FOR rec IN SELECT * FROM usuario where status = 1 
>>if (_resultado=1) then 
>>UPDATE usuario SET salario=_newsalario, cdlote =_lote where id in*** 
>>(rec.id)***
>>insert into public.enviolog (datahoraenvio, json, cdlote, ds_resultado, 
>>status) values( now(), _montajson, _lote, _resultado, 1;
>>END IF; 

>>coloquei entre *** onde deveria de extrair todos os valores da coluna rec.id 
>>e fazer um in, pois senão tenho que executar o update um a um, e neste caso 
>>faço um update unico...


newsalario ou NEW.salario?
_resultado ou rec._resultado?

no insert, os campos não devem ser precedidos por rec.?

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Retorno de uma funcao como tabela

2016-08-31 Por tôpico Carlos Antônio Pereira


From: Ursulino Barboza 
Sent: Wednesday, August 31, 2016 10:15 AM
To: Comunidade PostgreSQL Brasileira 
Subject: Re: [pgbr-geral] Retorno de uma funcao como tabela

Segue outra sugestão: 

Você pode dividir uma matriz para um conjunto de resultados usando a função 
unnest, e você pode transformar uma string literal em uma matriz usando a 
função string_to_array. Combine os dois e você começa a seguinte:select 
unnest(string_to_array('the quick lazy fox', ' '));
 unnest 

 the
 quick
 lazy
 fox
(4 filas)Na versão 8.2 não existe a função UNNEST, segue script que cria:

create or replace function unnest(anyarray) returns setof anyelement
language sql as $$
   select $1[i] from generate_series(array_lower($1, 1),
 array_upper($1, 1)) as i;
$$; 
Ok, Ursulino. 
Agradeço a ajuda. 
 ___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Retorno de uma funcao como tabela

2016-08-30 Por tôpico Carlos Antônio Pereira
 

Em 30/08/2016 19:50, Euler Taveira escreveu: 

> On 30-08-2016 15:59, Carlos Antônio Pereira wrote:
> 
>> Pessoal, estou querendo construir uma função assim: select 
>> tb_dominio('Masculino; Feminino')
> 
> Não precisa de função; ela já existe. O que parece que você quer é:
> 
> # select row_number() over(), a FROM
> regexp_split_to_table('um;dois;tres', ';') a;
> row_number | a
> +--
> 1 | um
> 2 | dois
> 3 | tres
> (3 registros)
> 
> Da próxima vez, descreva melhor entrada e saída. Não estava claro de
> onde vinha o "código" (ainda não sei se é exatamente isso que você quer).

É isso mesmo Euler. Obrigado. 

 ___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Retorno de uma funcao como tabela

2016-08-30 Por tôpico Carlos Antônio Pereira
Está retornando este erro.

ERROR:  syntax error at or near "$1"
LINE 1: CREATE TEMP TABLE public.dominio(  $1  INTEGER,  $2  TEXT )
   ^
QUERY:  CREATE TEMP TABLE public.dominio(  $1  INTEGER,  $2  TEXT )
CONTEXT:  SQL statement in PL/PgSQL function "dominio" near line 9


** Erro **

ERROR: syntax error at or near "$1"___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Retorno de uma funcao como tabela

2016-08-30 Por tôpico Carlos Antônio Pereira

Ola boa tarde amigo 

Veja uma funcao exemplo:

CREATE OR REPLACE FUNCTION teste(pSeuParaMetro)
  RETURNS TABLE(id_produto integer, codfor character varying, codbar character 
varying, descricao character varying, qtd_minima integer, estoque numeric, 
reposicao numeric, prateleira character varying) AS
$BODY$
BEGIN 
  RETURN QUERY SELECT id_produto , codfor  , codbar  , descricao, qtd_minima , 
estoque , reposicao , prateleira FROM tabela WHERE campo=pSeuParaMetro;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000;

veja se isto te ajuda.



Obrigado pela dica.
Mas a idéia é construir um record e retorná-lo a partir do parâmetro passado 
para a função, sem que tenha uma tabela relacionada ao retorno.

Algo como: 

select dominio(‘Sim;Não’);

Retorno:
codigo descricao
1  Sim
2  Não

select dominio(‘CPF;CNPJ’);
codigo descricao
1  CPF
2  CNPJ



Pensei nisto:

CREATE TYPE type_dominio AS (
codigo INT,
descricao VARCHAR
);


CREATE FUNCTION dominio(varchar) RETURNS SETOF type_dominio AS $$
DECLARE
dados_dominio type_dominio;
BEGIN
FOR ... LOOP
...;
END LOOP;
RETURN;
END;
$$ LANGUAGE 'plpgsql'

SELECT * FROM dominio(‘Sim;Não’);


Não sei o que fazer dentro do loop...
Talvez se passar um array como parametro...














___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Retorno de uma funcao como tabela

2016-08-30 Por tôpico Carlos Antônio Pereira

Ola boa tarde amigo 

Veja uma funcao exemplo:

CREATE OR REPLACE FUNCTION teste(pSeuParaMetro)
  RETURNS TABLE(id_produto integer, codfor character varying, codbar character 
varying, descricao character varying, qtd_minima integer, estoque numeric, 
reposicao numeric, prateleira character varying) AS
$BODY$
BEGIN 
  RETURN QUERY SELECT id_produto , codfor  , codbar  , descricao, qtd_minima , 
estoque , reposicao , prateleira FROM tabela WHERE campo=pSeuParaMetro;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000;

veja se isto te ajuda.



Obrigado pela dica.
Mas a idéia é construir um record e retorná-lo a partir do parâmetro passado 
para a função, sem que tenha uma tabela relacionada ao retorno.

Algo como: 

select dominio(‘Sim;Não’);

Retorno:
codigo descricao
1  Sim
2  Não

select dominio(‘CPF;CNPJ’);
codigo descricao
1  CPF
2  CNPJ










___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Retorno de uma funcao como tabela

2016-08-30 Por tôpico Carlos Antônio Pereira
Pessoal, estou querendo construir uma função assim:

select tb_dominio(‘Masculino; Feminino’)

Onde o retorno seja tipo record mais ou menos assim:

codigo descricao
1Masculino
2Feminino


Alguma idéia?

Att Carlos___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Restaurar PostgreSQL a partir do diretório data

2016-07-09 Por tôpico Carlos Antônio Pereira
 

Em 09/07/2016 21:07, Carlos Antônio Pereira escreveu: 

> Boa noite pessoal. 
> 
> Tive um problema com servidor ao fazer uma atualização e agora o PostgreSQL 
> não sobe. 
> 
> A versão é 8.4.18 e, ao atualizar um modulo do PHP, acabei mandando coisas do 
> PostgreSQL 9.2. 
> 
> Já preparei outro servidor e ia baixar o banco, ao que percebi que meu backup 
> está umas 4 horas desatualizado. 
> 
> Sendo assim, pergunto: Se copiar a pasta data de um servidor para outro, 
> considerando a mesma versão e tudo igual, vai funcionar? 
> 
> Obrigado pela ajuda de todos.

Resolvido. Obrigado. ___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Restaurar PostgreSQL a partir do diretório data

2016-07-09 Por tôpico Carlos Antônio Pereira
 

Boa noite pessoal. 

Tive um problema com servidor ao fazer uma atualização e agora o
PostgreSQL não sobe. 

A versão é 8.4.18 e, ao atualizar um modulo do PHP, acabei mandando
coisas do PostgreSQL 9.2. 

Já preparei outro servidor e ia baixar o banco, ao que percebi que meu
backup está umas 4 horas desatualizado. 

Sendo assim, pergunto: Se copiar a pasta data de um servidor para outro,
considerando a mesma versão e tudo igual, vai funcionar? 

Obrigado pela ajuda de todos. ___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Constraint para valer a partir do momento da criação

2013-06-17 Por tôpico Carlos Antônio Pereira
Boa noite, pessoal.

No Oracle existe a possibilidade de se criar constraints que valerão para novos 
registros inseridos/alterados no BD.
Alguém pode me dizer se é possível fazer a mesma implementação no PostgreSQL?
Att Carlos___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Constraint para valer a partir do momento da criação

2013-06-17 Por tôpico Carlos Antônio Pereira

Ok, Euler. Obrigado pela dica e desculpe pelo sequestro.

-Mensagem Original- 
From: Euler Taveira

Sent: Monday, June 17, 2013 8:51 PM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] Constraint para valer a partir do momento da 
criação


On 17-06-2013 19:22, Carlos Antônio Pereira wrote:

[Não sequestre um assunto, ou seja, não clique em responder e remove a
discussão anterior. Ao invés disso, copie o endereço da lista e produza
um *novo* email. É tão difícil fazer isso?]


No Oracle existe a possibilidade de se criar constraints que valerão
para novos registros inseridos/alterados no BD.
Alguém pode me dizer se é possível fazer a mesma implementação no
PostgreSQL?


Sim. Porém, somente a partir da 9.1 [1].

ALTER TABLE foo ADD table_constraint NOT VALID


[1] http://www.postgresql.org/docs/current/static/sql-altertable.html


--
  Euler Taveira   Timbira - http://www.timbira.com.br/
  PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Inscrições abertas para o PGBR2013

2013-05-21 Por tôpico Carlos Antônio Pereira
Bom dia, Fábio.

Vou passar o link para meus amigos.

Onde consigo informações a respeito de inscrição de estudante?
No site diz que é necessário apresentar comprovante de matrícula.

Comprovante de Matrícula = Carteira de Estudante?

Att Carlos

From: Fábio Telles Rodriguez 
Sent: Monday, May 20, 2013 5:35 PM
To: Comunidade PostgreSQL Brasileira ; Organização do PostgreSQL Brasil 
Subject: [pgbr-geral] Inscrições abertas para o PGBR2013

Senhores, as inscrições estão abertas para o PGBR2013 em: 
http://pgbr.postgresql.org.br/2013/inscricoes.php 

Como de costume, o valor é promocional para quem se inscrever antes. 

Contamos com a ajuda de todos na divulgação do evento.

Para quem ainda não viu... a lista das palestras e palestrantes também já está 
publicada em: 

http://pgbr.postgresql.org.br/2013/palestrantes.php
http://pgbr.postgresql.org.br/2013/palestras.php

-- 

Atenciosamente,
Fábio Telles Rodriguez
blog: http://savepoint.blog.br 
e-mail / gtalk / MSN: fabio.tel...@gmail.com 
Skype: fabio_telles

Timbira - A empresa brasileira de Postgres
http://www.timbira.com.br 



___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] erro com kernell

2013-05-14 Por tôpico Carlos Antônio Pereira
Boa tarde, senhores.

Alguem conhece algum curso de especialização/certificação em PostgreSQL?

Att Carlos Antonio Pereira___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Serviços e Consultora PostgreSQL

2013-04-03 Por tôpico Carlos Antônio Pereira
Senhores, 
trabalho com o PostgreSQL desde o ano de 2001 e ofereço meus serviços como 
Consultor e/ou DBA.
Trabalho na Região de Brasília – DF.
Atualmente utilizo a versão 8.4 na maioria dos projetos que tenho usando o PG.

Estou apto a instalar, configurar e manter  o banco em ambientes Linux ou 
Windows.

Atenciosamente, Carlos Antônio Pereira. ___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Problema com versões de registros

2012-08-30 Por tôpico Carlos Antônio Pereira
Boa tarde, senhores.

Em uma aplicação temos várias etapas feitas ao mesmo tempo por vários usuários.

O problema que estamos tendo é que um perfil abre o registro em memória 
enquanto outro,
com o mesmo registro, faz várias alterações em outros campos. 

Quando o primeiro perfil prenche seus campos de uma mesma tabela, a versão dele 
prevalece mesmo nos registros onde ele não alterou 
nada. 

Teria alguma forma de atualizar apenas os campos que esse primeiro perfil 
alterou?





From: Anselmo Silva 
Sent: Thursday, August 30, 2012 2:32 PM
To: Comunidade PostgreSQL Brasileira 
Subject: Re: [pgbr-geral] RES: Cross Table




Em 30 de agosto de 2012 14:30, KM kminformat...@kminformatica.com.br 
escreveu:

  Tem alguma configuracao no Postgres que determino o tempo de log de cada
  usuário no banco? Não precisa ser por usuário,mas tipo o cara ficou 1 dia
  logado o banco desconecta.

  Grato,
  Marcelo.

  -Mensagem original-
  De: pgbr-geral-boun...@listas.postgresql.org.br
  [mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de Osvaldo
  Kussama
  Enviada em: quinta-feira, 30 de agosto de 2012 14:20
  Para: Comunidade PostgreSQL Brasileira
  Assunto: Re: [pgbr-geral] Cross Table


  2012/8/30, Marcelo Silva marc...@ig.com.br:
   Tem como criar uma cross tables simples no postgres?
  
   Ou seja, trazer o result de um select em colunas
  
   Select descricao from Tabela
  
   Result
 descricao1
 descricao2
 descricao3
 etc
  
  
   Mas mostrar o Result assim:
  
   descricao1, descricao2, descricao3, etc
  


  Veja crosstab no módulo tablefunc:
  http://www.postgresql.org/docs/current/interactive/tablefunc.html

  Osvaldo
  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




Por favor, mantenha o assunto do tópico... ou crie um novo tópico.
-- 
Anselmo M. Silva




___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Interpretar formula gravada em um campo

2012-08-27 Por tôpico Carlos Antônio Pereira
Boa tarde, senhores.

Preciso armazenar uma formula matematica em um campo para depois fazer uso 
dela para atualizar outro.

Por exemplo

idproduto produto  qtde  consumo calculo
1   dipirona gotas 10 500020*15



O produto dipirona gotas é vendido em frascos de 20ml. O consumo desse 
produto
é medido em gotas. Cada ml tem 15 gotas. Assim, ao entrar o produto em meu 
estoque, preciso que ele atualize
o campo consumo para consumo = consumo + (qtde*20*15)

ou seja:
5000 + (10 * 20 * 15)
5000 + 3000
8000

Alguém tem idéia?





insert


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Extrair mes e ano Postgresql

2012-08-22 Por tôpico Carlos Antônio Pereira
select cast(to_char(current_date, 'MM/') as char(7)) as periodo

-Mensagem Original- 
From: Tiago Adami
Sent: Wednesday, August 22, 2012 1:23 PM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] Extrair mes e ano Postgresql

Em 22 de agosto de 2012 00:05, Matheus de Oliveira
matioli.math...@gmail.com escreveu:

 Em 21/08/2012 21:27, Edson - Listas edson...@gmail.com escreveu:



 Olá Pessoal,

 Como extrair o mês e ano em um campo data no PostgreSql?
 Exemplo: (08/2012)

 Extrair só a data eu consegui...

 select EXTRACT(MONTH from a.dt_mov) mes,sum(a.vlr_final)total
 from movdirhe a
 where a.dt_mov between '01/01/2010' and '21/08/2012'

 group by EXTRACT(MONTH from a.dt_mov)

 order by mes asc

 Edson


 Dê uma olhada na função to_char.

Resumindo pelo exemplo:

SELECT LTRIM(TO_CHAR( EXTRACT(MONTH FROM a.dt_mov), '00' )) || '/' ||
LTRIM(TO_CHAR( EXTRACT(YEAR FROM a.dt_mov), '' )) AS MES_ANO

NOTAS:
* Não sei se era a sua dúvida, mas valores texto não são 'somados' e
sim 'concatenados' com o operador 'pipe-pipe' = ||
* Se você não está limitando sua consulta a um intervalo dentro de
apenas 1 ano, ordenar somente por mês não trará a ordem cronológica
exata. O correto seria ordenar por ano e mês nesta ordem, ou
simplesmente pelo campo 'a.dt_mov'.

-- 
TIAGO J. ADAMI
http://www.adamiworks.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dica sobre sequência sem usar campo serial.

2012-05-31 Por tôpico Carlos Antônio Pereira
voce pode criar a sequencia isoladamente e usar as funções nextval, curval, etc 
para manipulá-la via aplicação ou gatilho.
att carlos

From: Marco Aurélio V. da Silva 
Sent: Thursday, May 31, 2012 8:09 PM
To: Comunidade PostgreSQL Brasileira 
Subject: [pgbr-geral] Dica sobre sequência sem usar campo serial.

Caros,

Não lembro se esse assunto já foi discutido na lista, mas vamos lá. Estou 
desenvolvendo um sistema que terá vários cadastros com numeração sequencial 
gerada pelo sistema, mas preciso evitar ao máximo ter furos na sequência. O 
sistema é multiusuario, e há a possibilidade de vários usuários fazendo 
cadastro ao mesmo tempo. 
A lógica que desenvolvi é o seguinte, uma função (vb.net+npgsql) que pega uma 
determinada tabela e busca qual o maior codigo dela ai a função soma mais 1 e 
adiciona o novo registro, logo a função é composta por dois comandos um select 
para pegar o ultimo codigo, e um insert para inserir a nova numeração.
Fazendo um stress teste na função com 3 usuários, só apos 115 tentativas dando 
enter ao mesmo tempo na tela conseguimos duplicar um número, mas fazendo um 
programa que faz um for de 1 a 200 da função rodando em tres maquinas ao mesmo 
tempo deu mais ou menos uns 30% de duplicidade. Adicionando um sleep de 0,1 
segundo antes de cada select a duplicidade caiu para 15% mas ainda ocorreu.
Existe alguma possibilidade de melhorar isto sem usar sequence ? A sequence me 
gera o seguinte problema, o usuario entra na tela de cadastro e desiste, ai 
excluo este numero para reaproveitar se ninguem ja tiver incluido um numero 
maior.
Posso fazer o controle de duplicidade tb, mas ai teria que ficar tratando a 
mensagem de erro.
Tem alguma outra forma ?

Desde já agradeço a atenção recebida.

Marco Aurélio V. da Silva
ma...@prodatanet.com.br
marcoprod...@gmail.com
msn: ma...@prodatanet.com.br
Prodata Inf. e Cadastros LTDA
(33) 3322-



___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dica sobre sequência sem usar campo serial.

2012-05-31 Por tôpico Carlos Antônio Pereira
Amigão, eu tive que implementar este código tempos atrás:

select setval('servico_pessoal_sequencia_seq', 
   (select max(sequencia) from servico_pessoal) + 1);

Assim, você pode redefinir o último valor.

Acho que essa sua teoria jamais vai funcionar porque você já está querendo 
fazer o trabalho que o próprio banco já
faz (com muita eficiência) com código totalmente testado e funcional.
em vez de ficar tentando reinventar a roda, porque você não coloca a busca da 
sequencia para se feita no insert?

E você não precisa de 2 comandos para implementar.

Olha só: insert into tabela (campo1, campo2, chaveincremental) values 
(:campo1,:campo2, nextval(‘minha_sequence’);
Quando serão perdidos números de sequência desta forma, se aqui seria o último 
passo antes do commit?
Lembre-se, um roolback restaura o registro no seu estado anterior. Assim, em 
caso de falha, sua sequence também volta
ao estado anterior.

Por fim, olha o tamanho do int4: 
Whole integer values, –2147483648 to +2.147.483.647 



From: Matheus de Oliveira 
Sent: Thursday, May 31, 2012 10:23 PM
To: Comunidade PostgreSQL Brasileira 
Subject: Re: [pgbr-geral]Dica sobre sequência sem usar campo serial.


2012/5/31 Marco Aurélio V. da Silva marcoprod...@gmail.com

  Caros,

  Não lembro se esse assunto já foi discutido na lista, mas vamos lá. Estou 
desenvolvendo um sistema que terá vários cadastros com numeração sequencial 
gerada pelo sistema, mas preciso evitar ao máximo ter furos na sequência. O 
sistema é multiusuario, e há a possibilidade de vários usuários fazendo 
cadastro ao mesmo tempo. 
  A lógica que desenvolvi é o seguinte, uma função (vb.net+npgsql) que pega uma 
determinada tabela e busca qual o maior codigo dela ai a função soma mais 1 e 
adiciona o novo registro, logo a função é composta por dois comandos um select 
para pegar o ultimo codigo, e um insert para inserir a nova numeração.
  Fazendo um stress teste na função com 3 usuários, só apos 115 tentativas 
dando enter ao mesmo tempo na tela conseguimos duplicar um número, mas fazendo 
um programa que faz um for de 1 a 200 da função rodando em tres maquinas ao 
mesmo tempo deu mais ou menos uns 30% de duplicidade. Adicionando um sleep de 
0,1 segundo antes de cada select a duplicidade caiu para 15% mas ainda ocorreu.

Isso não vai dar certo dessa forma, desista. O que pode ser feito é gerar um 
lock ao pegar o valor, e liberá-lo após inserir/atualizar os dados.

Você pode fazer isso usando o SELECT ... FOR UPDATE.
 

  Existe alguma possibilidade de melhorar isto sem usar sequence ? A sequence 
me gera o seguinte problema, o usuario entra na tela de cadastro e desiste, ai 
excluo este numero para reaproveitar se ninguem ja tiver incluido um numero 
maior.
  Posso fazer o controle de duplicidade tb, mas ai teria que ficar tratando a 
mensagem de erro.
  Tem alguma outra forma ?

Não basta gerar o valor da sequência apenas quando for realmente inserir o 
registro, e não quando abre a tela? 



Atenciosamente,
--
Matheus de Oliveira

Bacharelado em Ciências de Computação
Laboratório de Computação de Alto Desempenho - LCAD
Instituto de Ciências Matemáticas e de Computação - ICMC
Universidade de São Paulo - USP





___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] PostgreSQL Magazine

2012-05-16 Por tôpico Carlos Antônio Pereira
Eu também quero
Como procedemos?
Att Carlos

-Mensagem Original- 
From: Guimarães Faria Corcete DUTRA, Leandro
Sent: Tuesday, May 15, 2012 9:57 PM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] PostgreSQL Magazine

2012/5/15 Leonardo Cezar lhce...@gmail.com:
 Eu quero!

Façamos o seguinte: uma semana de prazo para todos se manifestarem?
Ou bastam, digamos, três dias?

Lembrando que tem a edição 0 ainda disponível, também.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] modelo conceptual

2012-02-25 Por tôpico Carlos Antônio Pereira
PowerDesigner

-Mensagem Original- 
From: Leandro Guimarães Faria Corce DUTRA
Sent: Saturday, February 25, 2012 6:24 PM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] modelo conceptual

Le 2012-F-23  14h17, Pedro Costa a écrit :

 Tenho de fazer um modelo conceptual para apresentar,  alguém conhece uma
 ferramenta intuitiva e poderosa para tal?

Caneta e papel?



-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] dúvida clausula where

2012-01-11 Por tôpico Carlos Antônio Pereira
SELECT n_rua, count(n_rua) as Ruas_repetidas FROM ruas GROUP BY ruas.n_rua
having count(n_rua)  1;

-Mensagem Original- 
From: Pedro Costa
Sent: Wednesday, January 11, 2012 3:34 PM
To: Comunidade PostgreSQL Brasileira
Subject: [pgbr-geral] dúvida clausula where

Pessoal eu tenho a seguinte consulta:



E agora quero que apareça só as ruas com o campo do count maior que um.

Podem dizer-me onde insiro a clausula where?
Dá-me sempre erro, não reconhece o campo ruas_repetidas'.

Obrigado

pedro costa
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Software para fazer MER e descrição de dados para PostgreSQL

2011-10-20 Por tôpico Carlos Antônio Pereira
PowerDesign

From: Guilherme Carvalho 
Sent: Thursday, October 20, 2011 6:25 PM
To: Comunidade PostgreSQL Brasileira 
Subject: Re: [pgbr-geral] Software para fazer MER e descrição de dados para 
PostgreSQL

Se não me engano o Case também faz. 

Analista de sistemas
twitter: @GCarneiro
http://djangopeople.net/guilhermecarvalho/



2011/10/20 Edson Marques marqued...@gmail.com

  O EA, Enterprise Artchitect é muito bom! Gera o DER em HTML, doc, imagem, 
etc. 



  2011/10/20 Eduardo Alexandre eduardog...@gmail.com

Em 20 de outubro de 2011 09:41, Dickson S. Guedes
lis...@guedesoft.net escreveu:
 MER ou DER?


Considerando que o Modelo de Entidade Relacionamento (MER) é
conceitual e que o Diagrama de Entidade Relacionamento (DER) é a
relação/representação entre as tabelas mesmo, seria o DER.

Vou testar o Power Architect.

Abraços,

Eduardo Alexandre

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral





  -- 
  Édson Marques
  Analista Desenvolvedor Java
  __


  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral






___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Dump Insert X Copy

2011-10-11 Por tôpico Carlos Antônio Pereira
Pessoal, tenho um script de backup que gera 2 dumps: um full com inserts e um 
full com copy. 
Sei que o backup com copy é muito agil para restaurar, mas não confio 100% 
neste método (razão pela qual gero os dois).
Pergunto: Dá para confiar no backup gerado com copy, ou seria melhor continuar 
com o script gerando os dois.

Quais os pros e contras dos dois?

Att Carlos ___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Garantia de Integridade

2011-09-22 Por tôpico Carlos Antônio Pereira
Integridade em BD podem ser construídas de duas formas: Através de 
Constraints e Programação em Pl/Sql (Integridade Semântica).
como no seu caso não é possível definir a primeira, você deve construir 
função e associá-la a algum evento de DDL.

-Mensagem Original- 
From: Vinicius Santos
Sent: Thursday, September 22, 2011 10:20 PM
To: Comunidade PostgreSQL Brasileira
Subject: [pgbr-geral] Garantia de Integridade

Boa noite pessoal,

Preciso de uma idéia/sugestão de como garantir o seguinte:
Temos um ERP com uma tabela de saídas e outra com uma tabela de
entradas, e uma terceira com o saldo das duas.
Por Exemplo: o total da tabela de saídas deu 100 e o total da tabela de
entradas deu 110, ou seja o saldo é 10, para um determinado produto.
O saldo 10 é gravado em outra tabela, que grava o saldo e a localizacão
do produto no estoque. Por ex.: 10 peças no local Depósito 1.

O que eu queria fazer é garantir que a tabela de saldo sempre tenha
entradas - saídas = saldo.

Atualmente, sem um mecanismo de integridade deste tipo, eu poderia
colocar a tabela com um saldo de 25. O que resultaria em 110 - 100 = 25.

O único jeito que estou visualizando é por meio de trigger.

Não temos o fonte do ERP, e não temos como mudar a modelagem, por
motivos óbvios.

Se alguém tiver alguma sugestão, agradeço.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tamanho do campo

2011-08-19 Por tôpico Carlos Antônio Pereira
crie um campo tempoario;
alimente-o com o campo a ser alterado;
exclua o campo a ser alterado;
crie o campo no tamanho desejado;
faca o update do campo temporario para o campo recem criado.

pt saudaçoes. FACA BACKUP!

-Mensagem Original- 
From: Leandro Guimarães Faria Corcete DUTRA
Sent: Friday, August 19, 2011 8:14 PM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] Tamanho do campo

Le 2011.A.19 13h21, Marcos Fabricio Corso a écrit :
 sim preciso alterar o tamanho do campo da tabela, e urgente ainda

A pergunta que não quer calar: mór di quê?



-- 
Skype:leandro.gfc.dutra?chat   Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191 Google Talk: xmpp:leand...@jabber.org
+55 (11) 9406 7191  MSNIM:chat?contact=lean...@dutra.fastmail.fm
sip:leand...@iptel.org ICQ: AIM:GoIM?screenname=61287803
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tamanho do campo

2011-08-19 Por tôpico Carlos Antônio Pereira
as versoes mais recentes do pg tem o comando alter column

-Mensagem Original- 
From: Leandro Guimarães Faria Corcete DUTRA
Sent: Friday, August 19, 2011 8:14 PM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] Tamanho do campo

Le 2011.A.19 13h21, Marcos Fabricio Corso a écrit :
 sim preciso alterar o tamanho do campo da tabela, e urgente ainda

A pergunta que não quer calar: mór di quê?



-- 
Skype:leandro.gfc.dutra?chat   Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191 Google Talk: xmpp:leand...@jabber.org
+55 (11) 9406 7191  MSNIM:chat?contact=lean...@dutra.fastmail.fm
sip:leand...@iptel.org ICQ: AIM:GoIM?screenname=61287803
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral