Re: [pgbr-geral] O Postgres guarda tudo?

2012-05-07 Thread Anselmo Silva
O que você quer dizer com "guarda tudo"? se refere-se ao log de comandos...
pode ser configurado o nível de log no arquivo postgres.conf

Em 7 de maio de 2012 16:27, Marcelo Silva (IG)  escreveu:

>   Pessoal, uma curiosidade...
>
> Pelo PgAdmin eu vejo o status em “tempo real” do servidor, então vem a
> pergunta:
>
> O postgres guarda todos os comandos executados no servidor?
>
>
>
> Marcelo Silva
> --
> msn: marc...@ig.com.br
> Cel.: (11) 9693-4251
> Cel.: (11) 5250-1407
> Desenvolvedor Delphi, PHP, ASP
> Empresa: Perfil "Medicina e Segurança do Trabalho"
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Questao sobre operador <->

2012-05-10 Thread Anselmo Silva
Acredito que você não entendeu o conceito do operador 'Similar To '. Dê uma
lida no manual e dicas do pessoal e verás que no caso de similaridade não é
tão simples como um LIKE onde os dados são %campo% =  %valor%.


Em 10 de maio de 2012 21:29, Jean Domingues escreveu:

> Pessoal, muito legal o novo operador <-> (extenção pg_trgm), funcionando
> junto com os indices gist. Se alguém souber me dizer, gostaria de saber se
> tem como eu saber a posição do texto no campo onde a maior similaridade foi
> encontrada. Por exemplo:
>
> texto: o rato roeu a roupa do rei de roma
> texto pesquisado: roupa do reu
> select 'roupa do reu' <-> 'o rato roeu a roupa do rei de roma'
> resultado: 0,789488 (por exemplo)
>
> Mas em que posição?
>
> Grato pela atenção.
> Jean Domingues.
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
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] Divisão de inteiros com resultado numeric

2012-05-12 Thread Anselmo Silva
Pergunta de newbie de PostgreSQL.
Pretendo fazer uma função que me faça um cálculo matemático de um text
passado como parâmetro.
Algo Assim:

CREATE FUNCTION CALCULE (calculo text) RETURNS NUMERIC...

Até aí tudo bem. Mas me deparei com uma regra que não entendi direito, mas,
deve ter um motivo:

"A divisão de números inteiros resulta em um número inteiro"

Meu problema é:

Tendo sido dado o seguinte com base na minha função acima:

SELECT CALCULE('1/10');

Gostaria de obter o resultado fracionado sem ter de tratar a string passada
para converte-las em numeric
antes de efetuar a operação.

Já busquei em tudo que é lugar mas a resposta é a mesma:

"Tem de converter ao menos um dos operandos para real ou numeric..."

Alguém tem alguma idéia mais eficiente?


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


Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Thread Anselmo Silva
Rodrigo Della, conheço o cast. Mas, Como eu disse, não queria tratar a
string. Na sua sugestão para obter meu resultado eu teria que fazer o
seguinte:

SELECT CAST('1' AS NUMERIC) / CAST ('10' AS NUMERIC)

Considere que recebo a string já pronta.

Em 12 de maio de 2012 14:58, Rodrigo Della Justina <
rodrigodellajust...@gmail.com> escreveu:

> olhe a expressão CAST, para te auxiliar utilizando esse cálculo
>
> #  http://www.postgresql.org/docs/8.3/static/sql-expressions.html
>
> Att
> Rodrigo
>
> Em 12 de maio de 2012 14:48, Anselmo Silva escreveu:
>
>> Pergunta de newbie de PostgreSQL.
>> Pretendo fazer uma função que me faça um cálculo matemático de um text
>> passado como parâmetro.
>> Algo Assim:
>>
>> CREATE FUNCTION CALCULE (calculo text) RETURNS NUMERIC...
>>
>> Até aí tudo bem. Mas me deparei com uma regra que não entendi direito,
>> mas, deve ter um motivo:
>>
>> "A divisão de números inteiros resulta em um número inteiro"
>>
>> Meu problema é:
>>
>> Tendo sido dado o seguinte com base na minha função acima:
>>
>> SELECT CALCULE('1/10');
>>
>> Gostaria de obter o resultado fracionado sem ter de tratar a string
>> passada para converte-las em numeric
>> antes de efetuar a operação.
>>
>> Já busquei em tudo que é lugar mas a resposta é a mesma:
>>
>> "Tem de converter ao menos um dos operandos para real ou numeric..."
>>
>> Alguém tem alguma idéia mais eficiente?
>>
>>
>> --
>> Anselmo M. Silva
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> *Atenciosamente*
> *
> *
> *Rodrigo Della Justina*
> *rodrigodellajust...@gmail.com*
> *rodrigodellajust...@ciss.com.br*
> Telp: 55-46-8801-6165
>
> *IBM DB2 Certified Database Academic*
> *
> *
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Thread Anselmo Silva
Osvaldo Kussama, para a necessidade do momento eu já tinha feito um RTA do
seguinte modo:

 EXECUTE 'SELECT ' || parametro ||'.0' INTO resultado;

quase idêntico à sua sugestão (a sua leva vantagens).
O que eu queria era saber se, por curiosidade, havia algo mais estruturado
já pronto no próprio SGDB
para isso, mas, aparentemente não há devido à minha proposta ser uma
violação de alguma regra no
cálculo interno que é feito quando da utilização de tais parâmetros.

Em 12 de maio de 2012 18:28, Osvaldo Kussama
escreveu:

> Em 12/05/12, Fabrízio de Royes Mello escreveu:
> > Em 12 de maio de 2012 18:02, Osvaldo Kussama
> > escreveu:
> >
> >>
> >> Para este caso em particular (uma operação aritmética) creio que
> >> funcionaria colocar em sua função:
> >> EXECUTE 'SELECT ' || parametro ||'::numeric;' INTO resultado;
> >>
> >>
> > Essa solução não resolve por completo expressões aritméticas.
> >
> > Se a expressão for, por exemplo:
> >
> > 5/2+5
> >
> > O resultado que irá ser apresentado com aquele SELECT dinâmico é:
> >
> > bdteste=# select 5/2+5::numeric;
> >  ?column?
> > --
> > 7
> > (1 row)
> >
> > E o resultado correto seria 7,5.
> >
> > Isso porque o PostgreSQL considera como inteiros os valores sem casa
> > decimal (com ponto ".") que não tenha sido definido explicitamente o tipo
> > de dado.
> >
> > Para sua solução funcionar creio que não irá fugir de fazer um pequeno
> > parser na sua expressão aritmética e separar os seus literais e sinais
> para
> > recompor ela com os casts adequados e só assim usar o EXECUTE.
> >
>
>
> Concordo.
> Talvez devesse ter escrito "uma operação aritmética simples" como o
> exemplificado.
> Não sei quais são as reais necessidades do Anselmo, pode ser que esta
> solução simples atenda.
>
> Osvaldo
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] Ajuda

2012-05-12 Thread Anselmo Silva
Baixe o SGDB apropriado para a plataforma:
http://www.enterprisedb.com/downloads/postgres-postgresql-downloads

Além do link que o Flávio recomendou, da documentação oficial, também
recomendo o PostgreSQL prático:
http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico

Em 12 de maio de 2012 22:07, Flavio Henrique Araque Gurgel <
fla...@4linux.com.br> escreveu:

>
> On 12-05-2012 22:03, jean carlos wrote:
> > Pessoal Boa Noite !
> > estou começando agora a brincar com o postgres e tenho um projeto de
> > faculdade para fazer, no qual vai envolver diretamente o acesso a dados.
> > Como Banco resolvi escolher o postgres , gostaria que me indicassem
> > algum material para uma primeira introduçaõ as coisas basicas do banco.
> > Utilizo Windows 7 .
>
> http://www.postgresql.org/docs/
>
> Flavio Henrique A. Gurgel
> Consultor e Instrutor 4Linux
> Tel: +55-11-2125-4747
> www.4linux.com.br
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-14 Thread Anselmo Silva
Pessoal, andei lendo mais e meu resultado mais "estruturado" é o seguinte:

CREATE FUNCTION DivIntToNum(i1 integer, i2 integer)
RETURNS NUMERIC AS
$BODY$
SELECT CAST($1 AS NUMERIC) / CAST($2 AS NUMERIC);
$BODY$
LANGUAGE SQL;

CREATE OPERATOR !/ (
leftarg = integer,
rightarg = integer,
procedure = DivIntToNum,
commutator = !/
);


O uso do operador de divisão com resultado numeric é simples;

SELECT 1 !/ 10

Aceito Críticas... Obrigado a todos pela boa discursão que tivemos sobre o
assunto!

Em 12 de maio de 2012 23:14, Leandro Guimarães Faria Corcete DUTRA <
l...@dutras.org> escreveu:

> Le 2012-5-12 16h16, Anselmo Silva a écrit :
> > acredito que tem uma razão para isso, que reconheço não saber
>
> Basicamente, é porque a linguagem SQL tem de ter comportamento
> consistente, e respeitar a definição dos tipos dos dados.
>
>Isso não é uma opção, é parte da definição da linguagem SQL.  O
> PostgreSQL tenta seguir essa definição, que é dada pelo padrão ISO SQL
> mais recente.
>
>
> > em algumas situações não é muito prático
>
> A questão de se é prático deve ser contextualizada.  O SQL é prático se
> os programas forem claros, consistentes, com poucos erros.  O tratamento
> estrito dos tipos de dados facilitam isso.  É um contexto muito
> diferente daquele de uso duma calculadora.
>
>Outros sistemas fazem as conversões implícitas.  Há pelo menos dois
> problemas com isso.  Um é que cada um faz conversões de determinada
> maneira, inconsistente com os outros.  Outro é que nem sempre o
> programador entende o que o sistema fez implicitamente.  Para evitar
> esses dois problemas é que o padrão ISO SQL exige as conversões
> explícitas.  Se o PostgreSQL as abandonasse, desviar-se-a do padrão,
> tornando o código menos portável, e além disso voltaria a permitir que
> os programadores introduzissem erros por confiarem em comportamentos
> implícitos mal compreendidos.
>
>
> --
> 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
>



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


Re: [pgbr-geral] Limpar todas as tabelas

2012-05-16 Thread Anselmo Silva
GIYF

http://postgresql.1045698.n5.nabble.com/Apagar-todos-os-dados-de-todas-as-tabelas-de-um-schema-td2047778.html


http://osdir.com/ml/db.postgresql.brasil.user/2006-06/msg00421.html


Em 16 de maio de 2012 15:25, Renato Ricci escreveu:

> Olá pessoal...
>
> Como posso deletar todos os registros de todas as tabelas de um banco?
> Já tentei fazer um delete geral lendo as tabelas do pg_tables:
>
> select 'DELETE FROM ' || tabela  || ';' from  (select distinct
> pg_tables.tablename as tabela from
>  pg_tables
>  ,pg_class
> ,pg_namespace
> where
>  pg_namespace.nspname = 'public'
>  and pg_tables.schemaname = pg_namespace.nspname
>  and pg_class.relname = pg_tables.tablename
>  and pg_class.relnamespace = pg_namespace.oid
> ) tabelas;
>
> porém, quando vou executar o resultado desse select ( que são os deletes),
> acontece erros de violação de Foreing Keys..
>
> Tem como desabilitar temporariamente essas foreing keys ou.. existe alguma
> maneira mais fácil de realizar este procedimento?
>
> Obrigado,
>
> Renato Ricci
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Anselmo M. Silva
___
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

2012-05-19 Thread Anselmo Silva
Matheus, vou dar meu pitaco:
Claro que usar o SQLite é ótimo, mas, imagina se tivéssemos PLPGSQL no
SQLite?
Ter um Postgres Embebed nativo seria muito bom para pequenas aplicações em
máquinas lentas em que o serviço do postgres
faz diferênça. Além disso para programar seria muito mais suave, para quem
já está acostumado com nosso Elefante.


Em 19 de maio de 2012 10:00, Matheus de Oliveira
escreveu:

> Certamente existem mais vantagens que desvantagens. Entretanto, eu
>> diria que não é a melhor opção para sistemas embarcados (como algumas
>> empresas continuam insistindo em utilizá-lo com aplicativos de
>> prateleira para Windows).
>>
>
> Cara, acho que você confundiu com relação ao termo, não?
>
> Pra mim *sistema embarcado*, sucintamente, é o que vem embarcado em
> pequenos dispositivos (exemplo: modem, geladeiras, máquinas de lavar,
> etc...), um exemplo é usando placas FPGA, arduino, etc. E esses, em geral,
> não precisam de servidores, só de um "repositório de dados", nesse caso
> cito como ótimo projeto o SQLite.
>
> Para sistemas "portables" e "standalones" já é diferente. Não é que o
> PostgreSQL não seja "instalável" dessa forma (digamos que "silent"), pra
> isso você tem que distribuir os arquivos certos colocando-os num local
> específico e criar um modelo pra executar o postmaster ou instalar um
> serviço no Windows pra fazer isso, podendo até deixar a aplicação
> iniciar/gerenciar esse serviço. De fato fazer isso com um Firebird que já
> vem como versão "embeded" é muito mais fácil, já que roda sem arquitetura
> cliente-servidor, mas aí também poderiamos usar até o SQLite, não?
>
> Atenciosamente,
> --
> Matheus de Oliveira
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Anselmo M. Silva
___
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

2012-05-20 Thread Anselmo Silva
Tá OK, relembrando o post inicial do Mont, não considero a não
funcionalidade(embebed) de um SGDB como deficiência.
Sem eternas discursões sobre isso, conclui-se que o programador, que
pretende usar o banco de dados PostgreSQL, vá tirando o
cavalinho da chuva em usá-lo para pequenos projetos de somente uma máquina,
sem necessidade de um "serviço" rodando para gerenciar os dados.
Nesse caso, eu e somente eu, acho que é inconveniente somente ter de usar,
conforme o Matheus disse, "outra sintaxe, modelo...".
Dutra, não me entenda mal, mas, talvez por trabalhares em situações
críticas de BD's, suas respostas sempre soem excessivamente críticas, sem
empatia com a simplória necessidade alheia. Entendo seus argumentos dentro
do contexto que estás a pensar. Mas, existe um universo de situações que
fogem à realidade de grandes projetos. Entretanto, também entendo que por
decisão dos desenvolvedores, não é foco pegar um projeto como o PostgreSQL,
que é robusto para as situações em que você e muitos outros devem passar
todo dia, e focalizar num projeto embebed que, por definição, é para
pequenos projetos, se comparados a um SGDB.

Em 19 de maio de 2012 12:15, Leandro Guimarães Faria Corcete DUTRA <
l...@dutras.org> escreveu:

> Le 19/05/12 12:13, Matheus de Oliveira a écrit :
> >
> > Porque não há necessidade, o PostgreSQL é muito bom pra gerenciar
> > multiplos usuários, clientes, conexões, permissões de acesso, etc. O
> > dpkg não precisa de nada disso. O que quero dizer é que é possível fazer
> > isso com o PostgreSQL, claro, mas convenhamos que um SQLite, por
> > exemplo, é bem menor e supri todas as necessidades. É aquela história de
> > usar um canhão pra matar uma formiga (ou algo assim).
>
> No sistema geral é melhor usar um componente mais capaz que começar com
> um menor e depois acrescentar um maior.
>
>
> > Eu não tenho um servidor externo que armazena as informações dos pacotes
> > de várias máquinas, cada máquina tem suas informações, ou seja, sua
> > "base de dados".
>
> Mas isso não exclui o PostgreSQL.
>
>
> --
> skype:leandro.gfc.dutra?chat   Yahoo!: ymsgr:sendIM?lgcdutra
> +55 (61) 3546 7191   gTalk: xmpp:leand...@jabber.org
> +55 (61) 9302 2691 ICQ/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
>



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


Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-20 Thread Anselmo Silva
Qual versão do PostgreSQL fizeste?

Resultado:
ao criar a função :
AVISO:  uso de escape fora do padrão em cadeia de caracteres
LINE 1: SELECT 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-...

ao executá-la usando: *Calcule ('1/10')*

ERRO: erro de sintaxe em ou próximo a ""
SQL state: 42601
Context: PL/pgSQL function "calcule" line 4 at comando EXECUTE


2012/5/19 Matheus de Oliveira 

>
> 2012/5/19 Matheus de Oliveira 
>
>> Essa função em si não parece ser uma boa prática, mas dá pra usar
>> expressão regular pra "tentar" fazer o que você quer.
>>
>> Exemplo:
>>
>> CREATE OR REPLACE FUNCTION CALCULE (calculo text)
>> RETURNS NUMERIC AS $$
>> DECLARE
>> v_result numeric;
>> BEGIN
>> EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)',
>> '\1::numeric', 'g')
>> INTO v_result;
>> RETURN v_result;
>> END;
>> $$ LANGUAGE plpgsql;
>>
>>
>> Aviso: código não testado...
>>
>>
> Corrigindo pra aceitar valor decimal:
>
>
> CREATE OR REPLACE FUNCTION CALCULE (calculo text)
> RETURNS NUMERIC AS $$
> DECLARE
> v_result numeric;
> BEGIN
> EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-9])',
> '\1::numeric\2', 'g')
>
> INTO v_result;
> RETURN v_result;
> END;
> $$ LANGUAGE plpgsql;
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] CASE ELSE

2012-05-21 Thread Anselmo Silva
Giovanni, apesar de vc não ter descrito completamente o problema e o seu
cenário, acho que entendi o que estás a fazer.
então:
select case when ( A.cod_fun = 0) OR ( A.cod_fun isnull) then
  'NÃO MONITORADO'
ELSE
  CAST(A.cod_fun AS VARCHAR) END


Seu CASE deve retornar o mesmo tipo.


2012/5/21 Bruno Silva 

> select A.COD_ABA, A.LABEL_ABA,
> CASE WHEN
>  COALESCE (A.cod_fun, 0)=0  THEN 'NÃO_MONITORADO'
> *ELSE *A.cod_fun*
> * END
>  from tb_abas A
>
>
> Bruno E. A. Silva.
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] CASE ELSE

2012-05-21 Thread Anselmo Silva
boa Juliano.

Em 21 de maio de 2012 20:00, Juliano Benvenuto Piovezan <
juli...@sinersoft.com.br> escreveu:

> 2012/5/21 Juliano Benvenuto Piovezan :
> > 2012/5/21 Giovanni Sousa :
> >> Pessoal,
> >>
> >> Tenho a seguinte consulta, no else quero retornar o valor do campo caso
> não
> >> seja zero. Não estou conseguindo...como deve ser?
> >>
> >>
> >>
> >> select A.COD_ABA, A.LABEL_ABA,
> >> CASE WHEN
> >>  COALESCE (A.cod_fun, 0)=0  THEN 'NÃO_MONITORADO'
> >> --ELSE (RETORNAR O VALOR DO CAMPO)
> >>  END
> >>  from tb_abas A
> >>
> >>
> >
> > Pelo que entendi, você quer retornar 'NÃO_MONITORADO' caso cod_fun
> > seja nulo, ou o próprio cod_fun caso contrário, é isso? Neste caso,
> > você estará tentando retornando um varchar OU um inteiro no mesmo
> > case, o que não é permitido. Para funcionar, você terá que fazer um
> > cast de cod_fun para varchar, ou rever a consulta.
>
> Ou simplificando esta consulta, utilizar o COALESCE diretamente.
>
> select A.COD_ABA, A.LABEL_ABA, COALESCE(A.cod_fun::varchar,
> 'NÃO_MONITORADO') from tb_abas A
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] SQL para consultar diferença entre registros

2012-05-30 Thread Anselmo Silva
se quiseres mostrar todos os código no intervalo não mencionados,
independente se existam na tabela dos produtos

select foo.codigo from
(select generate_series(1, select max(codproduto) from lista_de_produtos )
as codigo)foo
where foo.codigo not in (select codigo from tabela_produtos)


Em 30 de maio de 2012 11:22, Pedro Costa  escreveu:

>  Alessandro penso que seja isto o que pretende:
>
>
> select produtos from produtos where produtos not in (select produtos from
> lista)
>
>
>
>
> Em 30-05-2012 15:19, Alessandro Lima escreveu:
>
> Paulo, esta consulta não me retorna nada, pois não tenho o registro 3 na
> base.
> << select * from produtos where codigo not in (1,2,3)>>
>
>  Alessandro Lima
>
>
>
> Em 30 de maio de 2012 11:10, Paulo Vitor Bettini de Albuqerque Lima <
> paulovitor...@gmail.com> escreveu:
>
>> select * from produtos where codigo not in (1,2,3)
>>
>> Atenciosamente,
>> Paulo Vitor Bettini de Albuquerque Lima
>> http://about.me/paulolima
>>
>>
>>
>> Em 30 de maio de 2012 11:08, Alessandro Lima 
>> escreveu:
>>
>>>  Bom dia a todos,
>>>
>>>  Gostaria de uma ajuda para criar uma consulta que me retorne codigos
>>> que não estejam mais em uma tabela.
>>> Exemplo: tenho uma tabela de produto com dois produtos:
>>> codigonome
>>> 1produto A
>>> 2produto B
>>>
>>>  Tendo um lista (1,2,3) gostaria de saber quais os produtos que estão
>>> nesta lista e não estejam cadastrados na tabela
>>> ou seja, gostaria que o resultado fosse 3.
>>>
>>>  Tipo: select codigo from (1,2,3) where codigo not in (select codigo
>>> from produto)
>>>
>>> Alessandro Lima
>>>
>>>
>>>  ___
>>> 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 
> listpgbr-ge...@listas.postgresql.org.brhttps://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
>
>


-- 
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] Índice deferred

2012-05-30 Thread Anselmo Silva
Dado o seguinte:
-
CREATE TEMP TABLE TESTE (id serial not null,
codvenda integer,
ordem integer);

CREATE UNIQUE INDEX ON teste (codvenda, ORDEM);

INSERT INTO TESTE (codvenda, ordem) values (1,1);
INSERT INTO TESTE (codvenda, ordem) values (1,2);

begin;
-- tentando inverter ordem na mesma transação
update teste set ordem = 2 where codvenda = 1 and ordem = 1;
update teste set ordem = 1 where codvenda = 1 and ordem = 2;

commit;
-
Retorna o erro a seguir:

ERRO:  duplicar valor da chave viola a restrição de unicidade
"teste_codvenda_ordem_idx"
DETAIL:  Chave (codvenda, ordem)=(1, 2) já existe.

Resolvi atualizando para NULL o campo ORDEM dos dois, depois atualizando
novamente a ordem correta.

Minha questão é:
Alguém sabe se há alternativa melhor (mais estruturada, nativa) para que
tal erro não aconteça dentro de uma transação? Dropar o índice e recriá-lo
não vale

Li algo sobre índices com DEFERRED em 2006 [1]. Adiar um índice para o fim
da transação seria uma boa idéia, não?

há alguma informação mais recente sobre o assunto?

[1] http://www.depesz.com/2009/08/11/waiting-for-8-5-deferrable-uniqueness/
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Índice deferred

2012-05-31 Thread Anselmo Silva
Mateus, muito obrigado, vai funcionar. Eu não soube me expressar direito no
meu update, pois, como as alterações são em clientdataset ele usa como
chave o id.

Em 30 de maio de 2012 23:46, Matheus de Oliveira
escreveu:

>
> 2012/5/30 Anselmo Silva 
>
>> Dado o seguinte:
>>
>> -
>> CREATE TEMP TABLE TESTE (id serial not null,
>> codvenda integer,
>>  ordem integer);
>>
>> CREATE UNIQUE INDEX ON teste (codvenda, ORDEM);
>>
>> INSERT INTO TESTE (codvenda, ordem) values (1,1);
>> INSERT INTO TESTE (codvenda, ordem) values (1,2);
>>
>> begin;
>> -- tentando inverter ordem na mesma transação
>> update teste set ordem = 2 where codvenda = 1 and ordem = 1;
>> update teste set ordem = 1 where codvenda = 1 and ordem = 2;
>>
>
> Independente do DEFERRED, tem um erro de lógica aí (por causa do WHERE).
> Você está atualizando (no primeiro update) o registro com id=1, no segundo
> update você "reatualiza" o mesmo registro (e o outro) já que para ele ordem
> passa a ser 2, daí nem com deferred vai resolver.
>
> 2012/5/30 Leandro Guimarães Faria Corcete DUTRA 
>
>>
>>Acho que continua no TODO, já viu essa página?
>>
>>
> Na verdade essa funcionalidade já existe, mas tem que usar uma chave
> UNIQUE e não um índice.
>
> Exemplo:
>
>
> CREATE TEMP TABLE TESTE (id serial not null,
>  codvenda integer,
>  ordem integer);
>
> ALTER TABLE teste ADD CONSTRAINT uk_codvendaordem UNIQUE (codvenda, ordem)
> DEFERRABLE INITIALLY DEFERRED;
>
> Agora da seguinte forma funciona (considerando que os id's estão certos):
> BEGIN;
> UPDATE teste SET ordem = 2 WHERE id = 1;
> UPDATE teste SET ordem = 1 WHERE id = 2;
> COMMIT;
>
> Atenciosamente,
> --
> Matheus de Oliveira
>
> Bacharelado em Ciências de Computação
> Laboratório de Computação de Alto Desempenho - 
> LCAD<http://www.lcad.icmc.usp.br/>
> Instituto de Ciências Matemáticas e de Computação - 
> ICMC<http://www.icmc.usp.br/>
> Universidade de São Paulo - USP <http://www.sc.usp.br/>
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Relatorio na horizontal com select

2012-06-12 Thread Anselmo Silva
Crosstab  http://www.postgresql.org/docs/current/static/tablefunc.html

Em 12 de junho de 2012 10:05, Marcelo Silva (IG) escreveu:

>   Pessoal, boa tarde... tudo bem coces? espero que sim!
>
> tenho os seguintes dados com os seguintes problemas [image: Alegre]
>
> Tabela VendasItens
>
> codigo
> descricao
> data_cad
> valor
>
> eu preciso montar um grid da seguinte forma
>
> codigodescricaodata_cad valor
> data_cadvalordata_cadvalor
> 01panelas  01/01/2012 30,00
> 01/02/2010   35,0001/03/201033,00
>
> Ou seja, preciso fazer uma projeção de como subiu ou caiu os valores
>
> No delphi da pra fazer tranquilo...
> Mas dá pra fazer direto num select?
>
> Veja que não sei quantos meses terão os produtos... um pode ter um mes,
> outro dois e assim por diante...
> mas posso colocar uma parametro de quantos meses quero trazer
>
> Em pensei em subselects assim (a grosso modo):
>
> select
> (select valor from tabela where mes=1) as mes1
> (select valor from tabela where mes=2) as mes2
> ...
>
> Qual caminho correto tomar ?
>
>
> Marcelo Silva
> --
> msn: marc...@ig.com.br
> Cel.: (11) 9693-4251
> Cel.: (11) 5250-1407
> Desenvolvedor Delphi, PHP, ASP
> Empresa: Perfil "Medicina e Segurança do Trabalho"
>
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Anselmo M. Silva


wlEmoticon-smile[1].png
Description: Binary data
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Apresentação / Migração do 8.2 Para 9.1

2012-06-19 Thread Anselmo Silva
Em 19 de junho de 2012 15:48, Fabrízio de Royes Mello <
fabriziome...@gmail.com> escreveu:

>
> Em 19 de junho de 2012 15:37, SOUTO  escreveu:
>
>> Prezados,
>>
>>
>> Sou novo na lista e novato com DBA de PostgreSQL.
>>
>>
bem vindo


> Me chamo Claudio Souto, tenho 32 anos de idade e 6 anos como DBA
>> SQLServer e Oracle e sou de Brasília-DF, com relação a SQLServer e
>> Oracle podem contar comigo para o que der e vier mas quanto a
>> PostgreSQL eu é que vou contar com o auxilio dos senhores até pegar a
>> manha desse SGBD.
>>
>>
> Seja bem vindo.
>
>
>
>> Passado a apresentação, vamos ao meu problema:
>>
>> A empresa onde trabalho, pegou um cliente que solicitou a migração da
>> base de dados, um PostgreSQL 8.2, para o PostgreSQL 9.1. Andei lendo
>> alguns post’s na internet e não encontrei quase nada sobre este
>> assunto. Então estou fazendo a migração à moda (bem) antiga tabela por
>> tabela, View por View, Sequence por Sequence e etc, e estou com medo
>> de dar pau de não funcionar no final.
>>
>>
> Vc não precisa passar tanto trabalho assim, vc pode usar o "pg_dump" [1]
> para exportar o seu banco (dump) na 8.2 em formato SQL e depois importar
> ele no seu 9.1.
>
>
>
>> A base a ser migrada é de +/- 700GB, é um PostgreSQL 8.2.10 on
>> x86_64-unknown-linux-gnu, compiled by GCC gcc (Debian 4.3.1-9) 4.3.1
>> tem as linguagens de programação instalados (c, internal, pgsql,
>> plpgsql, plruby e sql), pretendo migrar para um servidor de teste
>> primeiramente que será um PostgreSQL 9.1.4 on
>> x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.4.3-4ubuntu5.1)
>> 4.4.3, 64-bit tem as linguagens de programação (pgsql e plpgsql).
>>
>> Então peço a ajuda de vocês, Qual a melhor opção para fazer essa
>> migração? Lembrem-se não tenho muito conhecimento do PostgreSQL.
>>
>>
> Tens que cuidar a questão das linguagens instaladas, pois pelo que percebi
> no seu 8.2 tem a "plruby" instalada e caso vc tenha alguma função escrita
> nessa linguagem no seu 9.1 vc tb deverá ter essa linguagem instalada.
>
>
> Obs.: Sei que é ridículo perguntar isso mas “Alguém tem um passo a passo?”
>>
>>
> eu comecei com as facilidades do pg_admin, podes fazer o mesmo ...


> Desconheço algum doc nesse sentido, mas vc poderia aproveitar esse seu
> case e ir documentando e publicar depois, creio que várias pessoas tenham
> as mesmas suas dúvidas.
>
> Att,
>
> --
> Fabrízio de Royes Mello
> Consultoria/Coaching PostgreSQL
> >> Blog sobre TI: http://fabriziomello.blogspot.com
> >> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
> >> Twitter: http://twitter.com/fabriziomello
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] SAIR

2012-06-20 Thread Anselmo Silva
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >
Desinscrever ou editar opções > bye ;)

Em 20 de junho de 2012 17:11, Maxtell Clicheria escreveu:

> Olá, como faço para sair do grupo???
>
>
>
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] in transaction

2012-06-21 Thread Anselmo Silva
SELECT
  client_addr AS "estação",
  D.datname AS "base de dados",
  relname AS "tabela",
  CASE
WHEN mode = 'AccessShareLock' THEN 'Acesso a tabela'
WHEN mode = 'ExclusiveLock' THEN 'Travamento da tabela'
WHEN mode = 'RowShareLock' THEN 'Acesso ao registro da tabela'
WHEN mode = 'RowExclusiveLock' THEN 'Travamento do registro da tabela'
  END AS "modo"
FROM pg_locks L
  INNER JOIN pg_class C ON C.oid = L.relation AND C.relkind = 'r'
  INNER JOIN pg_database D ON D.oid = L.database
  INNER JOIN pg_stat_activity S ON S.procpid = L.pid
WHERE
  relname NOT LIKE 'pg_%'
ORDER BY modo, client_addr, relname;




Em 21 de junho de 2012 10:18, Miguel Bezerra escreveu:

> Pessoal,
>
> Venho observando que existem diversas conexões com o status de " in
> transaction" dentro do meu servidor. Algumas demoram bastante para
> finalizar, enquanto outras nunca terminam.
>
> Imagina que esse status seja referente a transações em aberto.
>
> Gostaria de saber se existe alguma forma de executar algum tipo de trace,
> via postgres, e verificar o que está sendo executado dentro dessas
> transações.
>
>
> Obrigado.
>
> Best regards,
> --
> Miguel Eugênio Ramalho Bezerra, M.Sc.
> Federal University of Pernambuco, Brazil
> home: http://www.cin.ufpe.br/~merb/
> twitter: @migueleugenio
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] in transaction

2012-06-21 Thread Anselmo Silva
Só uma dica: busque na lista antes de fazer uma pergunta à comunidade.
A dica que te passei foi postada[1] há algum tempo, não é de autoria minha

[1]
http://listas.postgresql.org.br/pipermail/pgbr-geral/2008-January/006194.html


Em 21 de junho de 2012 10:32, Flavio Henrique Araque Gurgel <
fla...@4linux.com.br> escreveu:

>
> Em 21-06-2012 10:25, Anselmo Silva escreveu:
> > SELECT
> >client_addr AS "estação",
> >D.datname AS "base de dados",
> >relname AS "tabela",
> >CASE
> >  WHEN mode = 'AccessShareLock' THEN 'Acesso a tabela'
> >  WHEN mode = 'ExclusiveLock' THEN 'Travamento da tabela'
> >  WHEN mode = 'RowShareLock' THEN 'Acesso ao registro da tabela'
> >  WHEN mode = 'RowExclusiveLock' THEN 'Travamento do registro da
> tabela'
> >END AS "modo"
> > FROM pg_locks L
> >INNER JOIN pg_class C ON C.oid = L.relation AND C.relkind = 'r'
> >INNER JOIN pg_database D ON D.oid = L.database
> >INNER JOIN pg_stat_activity S ON S.procpid = L.pid
> > WHERE
> >relname NOT LIKE 'pg_%'
> > ORDER BY modo, client_addr, relname;
> >
> >
> >
> >
> > Em 21 de junho de 2012 10:18, Miguel Bezerra  > <mailto:miguelbeze...@gmail.com>> escreveu:
> >
> > Pessoal,
> >
> > Venho observando que existem diversas conexões com o status de
> > " in transaction" dentro do meu servidor. Algumas demoram
> > bastante para finalizar, enquanto outras nunca terminam.
> >
> > Imagina que esse status seja referente a transações em aberto.
> >
> > Gostaria de saber se existe alguma forma de executar algum tipo de
> > trace, via postgres, e verificar o que está sendo executado dentro
> > dessas transações.
> >
>
> Além da dica do Anselmo, pra você visualizar 100% do que uma transação
> está fazendo, você pode habilitar log_statement no conf e observar todas
> as transações, cada consulta executada, na sequência, direto no log do
> PostgreSQL.
>
> Só lembre-se de ativar esse parâmetro por um pequeno período de tempo,
> senão seu log vai ficar gigante. É um parâmetro que não requer reinício
> do PostgreSQL, só reload, não causa indisponibilidade.
>
> []s
>
> Flavio Henrique A. Gurgel
> Consultor e Instrutor 4Linux
> Tel: +55-11-2125-4747
> www.4linux.com.br
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] performance

2012-07-02 Thread Anselmo Silva
Seria interessante vc detalhar algo mais que 'um servidor com postgres e
postgis instalado'. Mas, recomendaria
alguns links:
http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

http://www.revsys.com/writings/postgresql-performance.html


Em 2 de julho de 2012 12:38, Pedro Costa  escreveu:

> Olá pessoal,
>
> Eu tenho no gabinete um servidor com postgres e postgis instalado que
> acessamos via qgis.
> Será que podiam aconselhar algumas dicas sobre como melhorar a performance?
>
>
> Obrigado
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] PgAdmin no Win7

2012-07-05 Thread Anselmo Silva
Tenho o mesmo cenário em casa, mas roda normal...  passa alguns detalhes a
mais: versão do PostgreSQL

Em 5 de julho de 2012 16:09, Itamar Reis Peixoto
escreveu:

> 2012/7/5 Julio Nardone :
> > Também ando tendo este problemas, rodando em um Windows 7 64 bits
> >
>
> eu utilizo no linux e nao tenho problema algum.
>
>
> --
> 
>
> Itamar Reis Peixoto
> msn, google talk: ita...@ispbrasil.com.br
> +55 11 4063 5033 (FIXO SP)
> +55 34 9158 9329 (TIM)
> +55 34 8806 3989 (OI)
> +55 34 3221 8599 (FIXO MG)
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] RES: PgAdmin no Win7

2012-07-05 Thread Anselmo Silva
Muito estranho, essa máquina não está comprometida? Uso Pg 9.0.7 normal.
veja essas dicas:
http://pcsupport.about.com/od/findbyerrormessage/a/msvcr90-dll-not-found-missing-error.htm


Há condições de usar o postgres 32bits só para testar?

Em 5 de julho de 2012 17:24,  escreveu:

> Utilizo a versao 9.1.4 no Win7 Home Ultimate 64 Bits sem nenhum problema.
>
> Tente baixar:
> http://www.enterprisedb.com/products-services-training/pgdownload
>
> >
> > Quando acesso o banco e clico em SQl Queries o PgAdmin para de funcionar.
> > Estou utilizando Win7 Home Premium 64 Bits.
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] RES: PgAdmin no Win7

2012-07-06 Thread Anselmo Silva
OK Flávio, é que até o momento não há nenhum indício, conforme outras
pessoas acima citaram que usam no mesmo cenário, de problema específico com
o PgAdmin.
Isso não quer dizer que acho que o problema seja do Postgres, é um chute
meu.
Desculpa se os tirei do foco.


Em 6 de julho de 2012 08:54, Flavio Henrique Araque Gurgel <
fla...@4linux.com.br> escreveu:

> Em 05-07-2012 17:32, Anselmo Silva escreveu:
> > Muito estranho, essa máquina não está comprometida? Uso Pg 9.0.7 normal.
> > veja essas dicas:
> >
> http://pcsupport.about.com/od/findbyerrormessage/a/msvcr90-dll-not-found-missing-error.htm
> >
> >
> > Há condições de usar o postgres 32bits só para testar?
>
> Estou entendendo errado ou a discussão sobre PgAdmin virou questão de
> versão do PostgreSQL?
>
> Uma coisa não tem nada a ver com a outra: para usar o PgAdmin no Windows
> não há dependência da versão do PostgreSQL ao qual se está conectando.
>
> Atenham-se à solução do PgAdmin. O link aponta uma possível solução, que
> *não* tem a ver com a versão do PostgreSQL.
>
> []s
>
> Flavio Henrique A. Gurgel
> Consultor e Instrutor 4Linux
> Tel: +55-11-2125-4747
> www.4linux.com.br
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Anselmo M. Silva
___
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 habilitar conexão com servidor remoto [pg_aba.conf]

2012-07-07 Thread Anselmo Silva
File > Add Server...
Em 'Nome' coloque um nome descritivo do servidor
Em 'Host', o IP do servidor (acho melhor IP Fixo como um serviço de NoIP)
Em 'Port', a porta de conexão do servidor;

No servidor, lembre de liberar acesso.


Em 7 de julho de 2012 11:28, Fabio Luis Rodrigues escreveu:

> Bom dia,
> Tenho o PG Admin III  isntalado em um windows xp.
>
> Estou tentando me conectar oa servidor remoto porém não está habilitado.
>
> Pesquisei muito na internet e não consegui ter sucesso.
>
> Como posso habilitar meu PG Admin para se conectar em um servidor remoto?
>
>
> Att,
> Fabio Luis Rodrigues
> + 55 21 9865-2071
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Anselmo M. Silva
___
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 com comparação de strings

2012-07-12 Thread Anselmo Silva
STRING_TO_ARRAY

Em 12 de julho de 2012 18:02, Vinicius Santos <
vinicius.santos.li...@gmail.com> escreveu:

> Pessoal boa tarde,
>
> Tenho uma string assim: 'Pedido 123'. E tenho outra string contendo vários
> pedidos separados por ponto-e-vírgula, assim: '123 ; 456 ; 789'.
>
> Existe alguma maneira simples de verificar que o pedido 123 está dentro da
> outra string?
>
> Eu pensei em deixar a primeira string apenas com números e depois
> trabalhar com position, mas fiquei curioso para saber se daria para
> trabalhar com algum operador.
>
> Talvez Expressão Regular...Alguma idéia?
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Guardar conteudo Richedit

2012-07-13 Thread Anselmo Silva
Podes usar as tags html e gravar em text no postgres.


Em 13 de julho de 2012 09:21, Guimarães Faria Corcete DUTRA, Leandro <
l...@dutras.org> escreveu:

> 2012/7/13 Marcelo Silva :
> >
> > Estou tendo problemas com a gravação de conteudo de um Richedit (que
> permite
> > a formatação do texto)
>
> Esse formato é binário ou texto?
>
>
> > Acontece que consigo gravar normalmente
>
> Com que tipo de dados?
>
>
> > mas na hora de ler ele me traz o
> > texto fonte (com os caracteres especiais de formatacao) e não mostra o
> texto
> > formatado no richedit novamente.
>
> Isso nada tem a ver com o PostgreSQL.  Teu programa é que deve ter um
> componente que ou aponte algum eventual erro na resposta do
> PostgreSQL, ou interprete os dados como tu esperas.
>
>
> > Já tentei algumas altereções nos meus fontes delphi, mas sem chance...
>
> Tentativa e erro não vão ajudar.  Tens de ter um diagnóstico e um
> plano de resolução.
>
>
> > testei os tipo Text e Bytea no Postgres, mas sem sucesso.
> > Existe algum campo próprio pra isso no postgres?
>
> Imagino que te refiras a tipo de dado (domínio).  Campo seria um
> atributo numa relação (tabela), e isso defines sobre um domínio.
>
> Tu podes criar um tipo de dados usando alguma linguagem de programação
> de sistemas como C ou D, mas isso em nada contribuiria para corrigir
> teu programa para esse problema específico.
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] Guardar conteudo Richedit

2012-07-13 Thread Anselmo Silva
Dutra, Richedit é um componente do Delphi para exibir texto formatado.

Marcelo, talvez o link abaixo lhe ajude a fazer a transição (Delphi)>(banco
de dados)
http://www.devmedia.com.br/formatar-tags-html-richedit-delphi/18106

Em 13 de julho de 2012 09:31, Marcelo Silva  escreveu:

> Por exemplo,
> Imagens eu guardo como em campo Bytea no postgres
> Um conteudo de uma string com formatacao (richedit) a recomendação seria em
> que tipo ?
>
> A pergunta seria meio Postgres meio Delphi é que eu preciso chegar num
> consenso entre os dois pra poder obter o resultado esperado, que é exibir
> um
> texto formatado (guardado no banco) num Richedit ou DBRichedit
>
>
> Marcelo Silva
> --
>
>
> -Mensagem Original-
> From: Roberto Mello
> Sent: Friday, July 13, 2012 9:15 AM
> To: Comunidade PostgreSQL Brasileira
> Subject: Re: [pgbr-geral] Guardar conteudo Richedit
>
> 2012/7/13 Marcelo Silva :
> > Pessoal como vão, tudo bem?
> >
> > Estou tendo problemas com a gravação de conteudo de um Richedit (que
> > permite
> > a formatação do texto)
> > Acontece que consigo gravar normalmente, mas na hora de ler ele me traz o
> > texto fonte (com os caracteres especiais de formatacao) e não mostra o
> > texto
> > formatado no richedit novamente.
> > Já tentei algumas altereções nos meus fontes delphi, mas sem chance...
> > testei os tipo Text e Bytea no Postgres, mas sem sucesso.
> > Existe algum campo próprio pra isso no postgres?
>
> Isso é uma pergunta específica de Delphi? Gravar "normalmente" em que
> tipo de coluna? Ler como? Qual encoding? Que tipo de dados? Que
> alterações? Campo próprio para o que? Você não definiu o que seria o
> "isso"
>
> Roberto
> ___
> 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
>



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


Re: [pgbr-geral] Guardar conteudo Richedit

2012-07-13 Thread Anselmo Silva
Em 13 de julho de 2012 10:18, Marcelo Silva  escreveu:

>   Hum...
> Vi aqui que, quando gravo um texto com barra \ ele coloca “\134” e isso
> está zaundo a formatação do texto.
>
> Isso pelo que vi é automático pois não tenho nenhum linha que trate isso
> antes de gravar.
>
> Pergunta:
>
> Como evitar que o Postgres edite minha string quando gravo?
>

Marcelo atente ao ponto. O Postgres não está  editando nada, é o componente
que deve está internamente enviando essa sequência.
Que tal pesquisar como o RichEdit trata as strings com formatação? assim vc
pode tratar na *Aplicação*, não no banco de dados.

>
> Eu não posso simplesmente dar um replace no “134” porque meu texto
> original pode ter essa sequencia.
>
> E laia
>
>
> Marcelo Silva
> -------
>
>
>
>  *From:* Anselmo Silva 
> *Sent:* Friday, July 13, 2012 9:43 AM
> *To:* Comunidade PostgreSQL Brasileira
> *Subject:* Re: [pgbr-geral] Guardar conteudo Richedit
>
>
> Dutra, Richedit é um componente do Delphi para exibir texto formatado.
>
> Marcelo, talvez o link abaixo lhe ajude a fazer a transição
> (Delphi)>(banco de dados)
> http://www.devmedia.com.br/formatar-tags-html-richedit-delphi/18106
>
> Em 13 de julho de 2012 09:31, Marcelo Silva  escreveu:
>
>> Por exemplo,
>> Imagens eu guardo como em campo Bytea no postgres
>> Um conteudo de uma string com formatacao (richedit) a recomendação seria
>> em
>> que tipo ?
>>
>> A pergunta seria meio Postgres meio Delphi é que eu preciso chegar num
>> consenso entre os dois pra poder obter o resultado esperado, que é exibir
>> um
>> texto formatado (guardado no banco) num Richedit ou DBRichedit
>>
>>
>> Marcelo Silva
>> --
>>
>>
>> -Mensagem Original-
>> From: Roberto Mello
>> Sent: Friday, July 13, 2012 9:15 AM
>> To: Comunidade PostgreSQL Brasileira
>> Subject: Re: [pgbr-geral] Guardar conteudo Richedit
>>
>> 2012/7/13 Marcelo Silva :
>> > Pessoal como vão, tudo bem?
>> >
>> > Estou tendo problemas com a gravação de conteudo de um Richedit (que
>> > permite
>> > a formatação do texto)
>> > Acontece que consigo gravar normalmente, mas na hora de ler ele me traz
>> o
>> > texto fonte (com os caracteres especiais de formatacao) e não mostra o
>> > texto
>> > formatado no richedit novamente.
>> > Já tentei algumas altereções nos meus fontes delphi, mas sem chance...
>> > testei os tipo Text e Bytea no Postgres, mas sem sucesso.
>> > Existe algum campo próprio pra isso no postgres?
>>
>> Isso é uma pergunta específica de Delphi? Gravar "normalmente" em que
>> tipo de coluna? Ler como? Qual encoding? Que tipo de dados? Que
>> alterações? Campo próprio para o que? Você não definiu o que seria o
>> "isso"
>>
>> Roberto
>> ___
>> 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
>>
>
>
>
> --
> 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
>
>


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


Re: [pgbr-geral] Guardar conteudo Richedit

2012-07-13 Thread Anselmo Silva
Em 13 de julho de 2012 10:28, Guimarães Faria Corcete DUTRA, Leandro <
l...@dutras.org> escreveu:

> 2012/7/13 Anselmo Silva :
> >
> > Que tal pesquisar como o RichEdit trata as strings com formatação? assim
> vc
> > pode tratar na *Aplicação*, não no banco de dados.
>
> Me parece que o colega ainda não entendeu a diferença entre o
> componente RichEdit, o formato RTF, ou entre binário e texto, ou entre
> apresentação e tipo de dados.
>
> De qualquer maneira, ele ainda não respondeu noßas perguntas, o que
> torna impoßível ajudá-lo.
>

Realmente.

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



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


Re: [pgbr-geral] Backup com pg_dump

2012-07-13 Thread Anselmo Silva
Mais informações seria mais produtivo para te ajudar

Em 13 de julho de 2012 17:42, Ronei Heck  escreveu:

>   Senhores(as),
>
> Um cliente meu tem 2 micros, um servidor e um terminal, ambos com win xp
> service pack 3. Está instalado no servidor o postgres 8.3.
>
> Uso o pg_dump para fazer o backup, tanto no servidor, quanto no terminal.
> No servidor, funciona normalmente, mas no terminal dá a mensagem “Não foi
> possível executar o aplicativo”, ou algo assim. Copiei o pg_dump da versão
> 9 e suas dlls, e fez o backup normalmente.
>
>
“Não foi possível executar o aplicativo”, ou algo assim ? qual mensagem,
onde aparece a mensagem?  no console do windows?


> Instalei o postgres 8.3 no terminal, aí o pg_dump da versão 8 passou a
> funcionar. Desinstalei o postgres, e o pd_dump voltou a dar problema.
> Deixei, então, o postgres instalado.
>
> Pergunto: O que acontece na instalação do postgres que faz funcionar o
> pg_dump? Tem como fazer o mesmo sem a instalação do postgres?
>
> Muito obrigado.
>
> Ronei Heck
> RH Sistemas
> Clarion 6.1
> Postgres 8.3/9.1
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Postgres X Delphi 2010

2012-07-17 Thread Anselmo Silva
ZeosDBO : http://sourceforge.net/projects/zeoslib/files/latest/download
Unidac:  http://www.devart.com/unidac/

*No caso da ZeusDBO deves colocar as dlls de conexão do postgres na pasta
do sistema e do aplicativo, ou embutí-las no executável.

Em 17 de julho de 2012 20:32, Marcelo Silva  escreveu:

>   Olá senhores, mais uma vez solicito vossa ajuda [image: Alegre]
>
> Estou tentando conectar o Delphi 2010 com uma driver baixado da web
>
> dbexppge30.dll (eu renomeio para dbexppge.dll)
>
> http://www.vitavoom.com/static/downloads/pgeDriver-4.50.exe
>
> Mas não estou tendo sucesso...
> Ele abre a conexao mas quando tento abrir uma Query ele da o erro:
>
> ---
> Application Error
> ---
> Exception TDBXError in module PGEDemo.exe at 0015B2D2.
>
> Unknown driver:  PostgreSQL.
>
>
> ---
> OK
> ---
>
>
> Será que alguém pode me enviar um driver que funcione?
>
> Postgres 9.1
> Delphi 2010
> Conexao: DBExpress
>
>
>
> Marcelo Silva
> --
> Desenvolvedor Delphi, PHP
>
> Tel.: (11) 2962-7390
> Cel.: (11) 5250-1407 - Tim
> Cel.: (11) 9693-4251 - Vivo
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Anselmo M. Silva
<>___
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 ao fazer dump de base com muitas tabelas.

2012-07-18 Thread Anselmo Silva
Vou dar meu pitaco: "Dividir para conquistar". Talvez haja algo de errado
nesta base e o Dump esbarra nisto inesperadamente.
Que tal o seguinte: se não houver muitas triggers e FK entre elas ou se
puder fazer grupos, poderia fazer o dump de um lote delas por vez, mantendo
sua lógica hierárquica.
Já tentou fazer somente da estrutura? pode ser outra tentativa, em lotes ou
não.


Em 18 de julho de 2012 22:25, Luciano Schardosim escreveu:

> Senhores,
>
> estou tendo que trabalhar com uma base que possui mais de 5 tabelas e
> quando tento fazer o dump desta coisa, não esta funcionando. Já fiz alguma
> alterações do servidor de onde esta base esta, mas não estou conseguindo,
> pois o processo de dump morre sem dar o erro ocorrido no log. Novamente
> aceito sugestões... hehe
>
> Abraço a todos.
>
> --
> ___
> Luciano Schardosim - @lschardosim
>
>
>
>
> *FIM DO MUNDO: 2000, 2002, 2006, 2008 e 2011. **EU FUI EM TODOS. *
> *E já tô com meu ingresso pra 2012!.*
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] REF. Retornar Descrição.

2012-07-27 Thread Anselmo Silva
 *VendasExterna* e *VendaInterna* são valores text ou varchar em uma tabela
"contas", certo? nela vc tem uma descrição das contas...
se sim window functions não seria mais apropriado para esse SELECT?

Em 27 de julho de 2012 10:15, Guimarães Faria Corcete DUTRA, Leandro <
l...@dutras.org> escreveu:

> 2012/7/27  :
> >
> > Preciso retornar no em cada somatorio o nome da CONTA ao inves de um nome
>
> Não entendi.  Acho que faltaram informações, como a estrutura das relações
> base.
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
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] Tratamento de Contrabarra

2012-08-06 Thread Anselmo Silva
Olá pessoal,
estou tendo um problema, que sei que é simples para vós, experientes com o
elefante.

Tenho vários campos de busca por texto em tempo real onde é possível o
usuário buscar algo como
o nome do produto. Isso é comum, porém se o usuário digita somente
uma contrabarra '\'  aí o bicho pega,
pois internamente meu select ficaria mais ou menos assim:

SELECT NOME FROM PROD WHERE NOME LIKE '\';

Resultado:

AVISO:  uso de \' fora do padrão em cadeia de caracteres
...
HINT:  Utilize '' para escrever cadeias de carateres entre apóstofros, ou
utilize a sintaxe de escape de cadeia de caracteres (E'...').

Andei lendo sobre a cláusula LIKE[1], especialmente sobre o ESCAPE, mas,
não entendi 100%.

Alguém podeia me dizer como contornar essa questão de newbie?

http://pgdocptbr.sourceforge.net/pg80/functions-matching.html

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


Re: [pgbr-geral] Tratamento de Contrabarra

2012-08-06 Thread Anselmo Silva
Detalhe : Postgres 8.0.8

Em 6 de agosto de 2012 13:56, Luiz Rafael Culik escreveu:

> Ola
>
> Se não me engano seria duas barra no modo antigo
>
> []s
> Luiz
>
> Em 6 de agosto de 2012 13:37, Matheus de Oliveira <
> matioli.math...@gmail.com> escreveu:
>
>>
>> 2012/8/6 Hallan Serafim Pagani 
>>
>>> Tente  SELECT NOME FROM PROD WHERE NOME LIKE E'\';
>>>
>>>
>> Não seria duas barras?
>>
>> SELECT NOME FROM PROD WHERE NOME LIKE E'\\';
>>
>>
>> --
>> Matheus de Oliveira
>>
>> ___
>> 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
>
>


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


Re: [pgbr-geral] Tratamento de Contrabarra

2012-08-06 Thread Anselmo Silva
Ops! Postgres 9.0.8

2012/8/6 Anselmo Silva 

> Detalhe : Postgres 8.0.8
>
> Em 6 de agosto de 2012 13:56, Luiz Rafael Culik 
> escreveu:
>
> Ola
>>
>> Se não me engano seria duas barra no modo antigo
>>
>> []s
>> Luiz
>>
>> Em 6 de agosto de 2012 13:37, Matheus de Oliveira <
>> matioli.math...@gmail.com> escreveu:
>>
>>>
>>> 2012/8/6 Hallan Serafim Pagani 
>>>
>>>> Tente  SELECT NOME FROM PROD WHERE NOME LIKE E'\';
>>>>
>>>>
>>> Não seria duas barras?
>>>
>>> SELECT NOME FROM PROD WHERE NOME LIKE E'\\';
>>>
>>>
>>> --
>>> Matheus de Oliveira
>>>
>>> ___
>>> 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
>>
>>
>
>
> --
> Anselmo M. Silva
>



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


Re: [pgbr-geral] Tratamento de Contrabarra

2012-08-06 Thread Anselmo Silva
Euler, desculpe-me pelo top-posting, não tive a intenção.
Já está nos planos a atualização, mas, por hora, tem um problema ao aplicar
sua sugestão. talvez por inexperiência minha.

Na aplicação o campo de busca oferece ao usuário uma opção de buscar:
(1)*Pelo Início do termo* - Assim faço: (SELECT NOME FROM PROD WHERE NOME
LIKE '\%');
(2)*Em qualquer parte do termo* - Assim faço: (SELECT NOME FROM PROD WHERE
NOME LIKE '%\%');
(3)*Pelo Fim do termo* - Assim faço: (SELECT NOME FROM PROD WHERE NOME LIKE
'%\'); AVISO:  uso de \' fora do padrão em cadeia de caracteres
(4)S*omente o Termo* - Assim faço: (SELECT NOME FROM PROD WHERE NOME LIKE
'\');AVISO:  uso de \' fora do padrão em cadeia de caracteres



Em 6 de agosto de 2012 14:35, Euler Taveira  escreveu:

> On 06-08-2012 14:17, Anselmo Silva wrote:
> > Detalhe : Postgres 8.0.8
> >
> [evite top-posting...] Considere atualizar pois esta versão já foi
> descontinuada a quase dois anos.
>
> Quanto a sua dúvida, contrabarra (\) é o caracter de escape do LIKE então
> para
> utilizá-lo você deve fazer escape nele:
>
> euler=# select * from prod where a LIKE '%\\%';
>   a
> --
>  tes \\ teste
>  tes \ teste
> (2 registros)
>
> ou utilizar um caracter de escape diferente utilizando a cláusula ESCAPE:
>
> euler=# select * from prod where a LIKE '%\%' ESCAPE '';
>   a
> --
>  tes \\ teste
>  tes \ teste
> (2 registros)
>
>
> --
>Euler Taveira de Oliveira - 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
>



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


Re: [pgbr-geral] Tratamento de Contrabarra

2012-08-06 Thread Anselmo Silva
Matheus, obrigado.
A Linguagem: Delphi. Como eu disse anteriormente o usuário é quem digita a
contrabarra.
Como Alguns usuários já acabaram se acostumando em usar a barra como
"coringa", estou momentaneamente contornando
com uma função do Dephi *ReplaceStr(where,'\', '%').*
Não estou tratando contra SQL injection, preciso ler mais sobre. Para essa
gambiarra temporária haveria riscos de SQL injection?

Em 6 de agosto de 2012 16:18, Matheus de Oliveira  escreveu:

>
>
> 2012/8/6 Anselmo Silva 
>
>> Euler, desculpe-me pelo top-posting, não tive a intenção.
>> Já está nos planos a atualização, mas, por hora, tem um problema ao
>> aplicar sua sugestão. talvez por inexperiência minha.
>>
>> Na aplicação o campo de busca oferece ao usuário uma opção de buscar:
>> (1)*Pelo Início do termo* - Assim faço: (SELECT NOME FROM PROD WHERE
>> NOME LIKE '\%');
>> (2)*Em qualquer parte do termo* - Assim faço: (SELECT NOME FROM PROD
>> WHERE NOME LIKE '%\%');
>> (3)*Pelo Fim do termo* - Assim faço: (SELECT NOME FROM PROD WHERE NOME
>> LIKE '%\'); AVISO:  uso de \' fora do padrão em cadeia de caracteres
>> (4)S*omente o Termo* - Assim faço: (SELECT NOME FROM PROD WHERE NOME
>> LIKE '\');AVISO:  uso de \' fora do padrão em cadeia de caracteres
>>
>> Use duas barras ao invés de uma, como já foi dito.
>
> Qual linguagem você usa? Algumas têm funções próprias pra "dar um escape"
> na string automaticamente (ou você pode usar um replace básico, tipo str =
> replace(str, "\", "\\")). Se você não está tratando isso, então está
> sujeito à SQL Injection.
>
> Atenciosamente,
> --
> Matheus de Oliveira
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Tratamento de Contrabarra

2012-08-07 Thread Anselmo Silva
Obrigado pelas dicas sobre SQL injection. Minha senha está criptografada na
base e no SGDB. Não é permitido o uso do apóstrofo no login. Somente letras
e números.
Mas, em conclusão sobre o tema do tópico. Só tem jeito se tratar a
aplicação nesse caso, né?

Em 7 de agosto de 2012 08:54, Marcelo Silva  escreveu:

> Por isso deve-se evitar conferir a senha no SQL
>
> O melhor é assim
>
> Select * From Login Where (login = ‘”+var_login+”’)
>
> // Confere se pegou o login
> if (Result > 0)
>
> Depois de Trazer o login faz um IF
>
> if (SuaQuery.SeuCampoSenha = VariavelSenha)
>
> Prossegue...
>
> Assim ele pode colocar a injeção que quiser no SELECT pois quem verifica a
> senha é o IF
>
> Ou seja, verifique o login e senha separadamente
>
> * Por que o uso de “( )” ?
>
> Isso evita injeção sem formatação, por exemplo
> a=b and c=d
>
> Se vc tiver um separador ele vai ter que formatar tamebm na injeção
>
> (a=b)and(c=d)
>
> Se ele colocar uma injeção em b ou d vai ficar
>
> (a=admin or 1=1; -- ')...
>
> Veja que vai falta fechar o ")" gerando um erro
>
> Claro que o cara vai tentar de tudo, mas vamos dificultar o máximo :)
>
>
> Marcelo Silva
> --
>
>
>
> From: Matheus de Oliveira
> Sent: Tuesday, August 07, 2012 8:32 AM
> To: Comunidade PostgreSQL Brasileira
> Subject: Re: [pgbr-geral] Tratamento de Contrabarra
>
>
> 2012/8/6 Anselmo Silva 
>
> Matheus, obrigado.
> A Linguagem: Delphi. Como eu disse anteriormente o usuário é quem digita a
> contrabarra.
> Como Alguns usuários já acabaram se acostumando em usar a barra como
> "coringa", estou momentaneamente contornando
> com uma função do Dephi ReplaceStr(where,'\', '%').
>
> Não estou tratando contra SQL injection, preciso ler mais sobre. Para essa
> gambiarra temporária haveria riscos de SQL injection?
>
>
>
> Nossa, agora que eu entendi que a barra é o coringa. Particularmente já vi
> usar como coringa interrogação e asterisco, barra é a primeira vez... =P
>
> Mas então, o risco de SQL Injection não está na barra, está se o cara
> digitar um apóstrofo (aspa simples).
> Imagine só, se o cara digita isso aqui numa tela de login:
>
> login: admin' or 1 = 1; --
> senha: qualquer coisa
>
> Daí você faz a consulta +/- assim:
>
> sql = "SELECT * FROM login WHERE login = '" + login + "' AND senha = '"
> + senha "'";
>
> O SQL final ficaria:
>
> SELECT * FROM login WHERE login = 'admin' or 1 = 1; --' AND senha =
> 'qualquer coisa';
>
> Ou seja, o cara estaria logado como "admin" (veja que depois do "--" é
> comentário).
>
> Se você tratar pelo menos a aspa simples, por exemplo trocando por duas
> aspas, você estará livre de SQL Injection. Uma dica boa é usar PREPARED
> STATEMENTS que já faz tudo isso pra você.
>
> Atenciosamente,
> --
> Matheus de Oliveira
>
>
>
> ___
> 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
>



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


Re: [pgbr-geral] Ajuda com select

2012-08-13 Thread Anselmo Silva
Faça um modelo resumido do problema com a estrutura deste modelo para
melhores dicas.
'Chutando' eu aconselharia que vc revisasse as ligações (joins), se estão
consistentes.

2012/8/13 Edson - Listas 

> Olá Pessoal,
>
> O meu select abaixo, esta duplicando as linhas, mesmo usando DISTINCT.
>
> select DISTINCT  a.cd_fil,a.cd_ordem,a.dt_abertura,
> a.cd_cli,f.nm_cli,f.de_endereco,f.fone,
> a.vlr_final_os,a.vlr_desc_os,a.vlr_outros,
> a.vlr_tot_prod,a.vlr_tot_serv,a.servico_solicitado,
> a.de_ocorrencia,
> h.de_cid,a.cd_funcio,e.nm_funcio,b.cd_prod,
> g.de_prod,b.qtde_prod,b.vlr_unit_prod,b.perc_desc_prod,
> b.vlr_desc_prod,b.vlr_prod,b.total_prod,
> c.cd_servico,d.de_servico,c.qtd_serc,c.vlr_unit,
> c.perc_desc_serv,c.vlr_desc,c.vlr_serv,
> c.sub_total,
> CASE
>  WHEN a.fg_tipo_os = 'INS' THEN 'INSTALAÇÃO'
>  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
>  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
>  WHEN a.fg_tipo_os = 'ACO' THEN 'À COBRAR'
>  WHEN a.fg_tipo_os = 'GAR' THEN 'GARANTIA'
>  WHEN a.fg_tipo_os = 'CON' THEN 'CONTRATO'
>  WHEN a.fg_tipo_os = 'ORC' THEN 'ORÇAMENTO'
>  ELSE 'OUTROS'
>  END tipo_os,
>  CASE
>  WHEN a.fg_status_os = 'AB' THEN 'ABERTA'
>  WHEN a.fg_status_os = 'FC' THEN 'FECHADA'
>  ELSE 'INVÁLIDA'
>  END status_os
>
> from osservhe a inner JOIN  osprodut b
>  on a.cd_ordem = b.cd_ordem
>inner join cliente f
>  on a.cd_cli = f.cd_cli
> inner join vendfunc e
>  on a.cd_funcio = e.cd_funcio
>inner join osservde c
>  on a.cd_ordem = c.cd_ordem
>left join produto g
>  on b.cd_prod = g.cd_prod
>left join servicos d
>  on c.cd_servico = d.cd_servico
>inner join cidade h on
>f.cd_cid = h.cd_cid
>order by a.dt_abertura,a.cd_ordem
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] Encoding e Charset

2012-08-14 Thread Anselmo Silva
veja essa discursão anterior:
http://postgresql.1045698.n5.nabble.com/Alterar-encoding-Backup-e-Restores-td2029729.html



Em 14 de agosto de 2012 09:09, Hélio Oliveira escreveu:

> Bom dia Colegas!
>
> Estou começando estudos do Postgres para futura utilização em projetos
> novos. Até o presente momento trabalho com Firebird e no mesmo utilizo o
> conjunto de Charset/Collate Win1252/Win_ptbr que atende 100% a questão de
> acentuação e ordenamento dos campos string, logo pergunto aos nobres que já
> tem experiência com o PG qual o melhor conjunto de Encoding/Charset a ser
> utilizado?
>
> [ ]'s,
>
> Hélio Oliveira
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] Where em Instrução Update

2012-08-14 Thread Anselmo Silva
O link abaixo mostra como criar uma trigger para limitar o número de
registros máximo permitido em um update. Veja se lhe atende.
http://simononsoftware.com/how-to-allow-for-max-4-rows-in-update-postgresql/


Em 14 de agosto de 2012 18:19, Fábio Telles Rodriguez <
fabio.tel...@gmail.com> escreveu:

>
>
> Em 14 de agosto de 2012 17:53, "(:::) Stéfano Tavares Diane (:::)" <
> stefan...@yahoo.com.br> escreveu:
>
> olá pessoal,
>> todos nós sabemos do estrago que uma instrução Update pode fazer
>> sem a cláusula Where bem definida. Por isso pergunto, é possível
>> tornar a cláusula Where obrigatório na instrução Update ?
>> por exemplo:
>>caso a intenção for não usar o where na instrução
>>especificaria que não irá usar, senão apresentava o erro de
>>cláusula where faltando
>>
>>  UPDATE tabela SET campo = valor WITH NO WHERE
>>
>>
> Não, mas se for uma tabela crítica faça o seguinte:
>
> 1) REVOKE UPDATE para a tabela e para o(s) usuários envolvidos.
>
> 2) Crie uma função que faça o UPDATE e que obrigatoriamente receba como
> parâmetros a clausula WHERE
>
> 3) GRANT EXECUTE para a função que você criou.
>
> Assim você fica bem protegido.
>
> []s
> --
> Atenciosamente,
> Fábio Telles Rodriguez
> blog: http:// 
> http://tellesr.wordpress.com
> e-mail / gtalk / MSN: fabio.tel...@gmail.com
> Skype: fabio_telles
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Where em Instrução Update

2012-08-14 Thread Anselmo Silva
Só lembrando que 'UPDATE TABELA SET CAMPO = VALOR WHERE TRUE' funciona!
Reavalie sua idéia.

Em 14 de agosto de 2012 18:22, Anselmo Silva escreveu:

> O link abaixo mostra como criar uma trigger para limitar o número de
> registros máximo permitido em um update. Veja se lhe atende.
>
> http://simononsoftware.com/how-to-allow-for-max-4-rows-in-update-postgresql/
>
>
> Em 14 de agosto de 2012 18:19, Fábio Telles Rodriguez <
> fabio.tel...@gmail.com> escreveu:
>
>>
>>
>> Em 14 de agosto de 2012 17:53, "(:::) Stéfano Tavares Diane (:::)" <
>> stefan...@yahoo.com.br> escreveu:
>>
>> olá pessoal,
>>> todos nós sabemos do estrago que uma instrução Update pode fazer
>>> sem a cláusula Where bem definida. Por isso pergunto, é possível
>>> tornar a cláusula Where obrigatório na instrução Update ?
>>> por exemplo:
>>>caso a intenção for não usar o where na instrução
>>>especificaria que não irá usar, senão apresentava o erro de
>>>cláusula where faltando
>>>
>>>  UPDATE tabela SET campo = valor WITH NO WHERE
>>>
>>>
>> Não, mas se for uma tabela crítica faça o seguinte:
>>
>> 1) REVOKE UPDATE para a tabela e para o(s) usuários envolvidos.
>>
>> 2) Crie uma função que faça o UPDATE e que obrigatoriamente receba como
>> parâmetros a clausula WHERE
>>
>> 3) GRANT EXECUTE para a função que você criou.
>>
>> Assim você fica bem protegido.
>>
>> []s
>> --
>> Atenciosamente,
>> Fábio Telles Rodriguez
>> blog: http:// <http://www.midstorm.org/~telles/>
>> http://tellesr.wordpress.com
>> e-mail / gtalk / MSN: fabio.tel...@gmail.com
>> Skype: fabio_telles
>>
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> Anselmo M. Silva
>



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


Re: [pgbr-geral] Ajuda com select

2012-08-15 Thread Anselmo Silva
Edson, um toque: é meio complicado pro pessoal aqui ter tempo para refazer
seu modelo completo, inserir dados e detectar seu problema.
Sugestão: Faça um modelo simplificado da estrutura em que ocorre o
problema, detecte o problema e poste aqui. Algo como:

CREATE TABLE OS(XXX TYPE , YYY TYPE)...
INSERT INTO OS(...
SELECT DISTINCT(XXX...




Em 15 de agosto de 2012 22:45, Edson - Listas  escreveu:

>  Pessoal, ainda não consegui encontrar o problema, segue o meu modelo no
> endereço abaixo:
>   http://imagebin.org/224706
>
> Edson
>
> Em 13/08/2012 21:21, Anselmo Silva escreveu:
>
> Faça um modelo resumido do problema com a estrutura deste modelo para
> melhores dicas.
> 'Chutando' eu aconselharia que vc revisasse as ligações (joins), se estão
> consistentes.
>
> 2012/8/13 Edson - Listas 
>
>> Olá Pessoal,
>>
>> O meu select abaixo, esta duplicando as linhas, mesmo usando DISTINCT.
>>
>> select DISTINCT  a.cd_fil,a.cd_ordem,a.dt_abertura,
>> a.cd_cli,f.nm_cli,f.de_endereco,f.fone,
>> a.vlr_final_os,a.vlr_desc_os,a.vlr_outros,
>> a.vlr_tot_prod,a.vlr_tot_serv,a.servico_solicitado,
>> a.de_ocorrencia,
>> h.de_cid,a.cd_funcio,e.nm_funcio,b.cd_prod,
>> g.de_prod,b.qtde_prod,b.vlr_unit_prod,b.perc_desc_prod,
>> b.vlr_desc_prod,b.vlr_prod,b.total_prod,
>> c.cd_servico,d.de_servico,c.qtd_serc,c.vlr_unit,
>> c.perc_desc_serv,c.vlr_desc,c.vlr_serv,
>> c.sub_total,
>> CASE
>>  WHEN a.fg_tipo_os = 'INS' THEN 'INSTALAÇÃO'
>>  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
>>  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
>>  WHEN a.fg_tipo_os = 'ACO' THEN 'À COBRAR'
>>  WHEN a.fg_tipo_os = 'GAR' THEN 'GARANTIA'
>>  WHEN a.fg_tipo_os = 'CON' THEN 'CONTRATO'
>>  WHEN a.fg_tipo_os = 'ORC' THEN 'ORÇAMENTO'
>>  ELSE 'OUTROS'
>>  END tipo_os,
>>  CASE
>>  WHEN a.fg_status_os = 'AB' THEN 'ABERTA'
>>  WHEN a.fg_status_os = 'FC' THEN 'FECHADA'
>>  ELSE 'INVÁLIDA'
>>  END status_os
>>
>> from osservhe a inner JOIN  osprodut b
>>  on a.cd_ordem = b.cd_ordem
>>inner join cliente f
>>  on a.cd_cli = f.cd_cli
>> inner join vendfunc e
>>  on a.cd_funcio = e.cd_funcio
>>inner join osservde c
>>  on a.cd_ordem = c.cd_ordem
>>left join produto g
>>  on b.cd_prod = g.cd_prod
>>left join servicos d
>>  on c.cd_servico = d.cd_servico
>>inner join cidade h on
>>f.cd_cid = h.cd_cid
>>order by a.dt_abertura,a.cd_ordem
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
>
>  --
> Anselmo M. Silva
>
>
> ___
> pgbr-geral mailing 
> listpgbr-ge...@listas.postgresql.org.brhttps://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
>
>


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


Re: [pgbr-geral] Text X Character Varying

2012-08-21 Thread Anselmo Silva
Houve uma discursão anterior sobre richedit aqui na lista. Já pensou em
gravar em HTML ?

Em 21 de agosto de 2012 16:54, Marcelo Silva  escreveu:

>   Pior que estava a mil maravilhas meu sistema, até precisar coletar
> informações desse Richedit.
>
> Minha base está em UTF8
> O sistema acesso com CODEPAGE=LATIN1 ( cliente_encoding )
> Funciona numa boa, aceita acentos e tudo mais
> Agora esse maldito richedit está me dando um baile.
>
>
> Marcelo Silva
> 
>
>
>  *From:* Matheus de Oliveira 
> *Sent:* Tuesday, August 21, 2012 4:23 PM
> *To:* Comunidade PostgreSQL Brasileira
> *Subject:* Re: [pgbr-geral] Text X Character Varying
>
>
> 2012/8/21 Marcelo Silva 
>
>>   Essa string é o conteudo de um componente do delphi, o Richedit,
>> preciso usar ele pra gravar textos formatados.
>>
>> Estou numa briga danada aqui...
>>
>> SE eu deixo #standard_conforming_strings on ele grava aspas simples
>> corretamente, mas dá erro na string citada neste email.
>> Se eu deixo #standard_conforming_strings = off ele grava a string do
>> richedit, mas quando vou gravar ‘ aspas simples, ele grava \047 e isso em
>> um campo com tamanho limitado gera erro
>>
>> imagine que tenho uma campo varchar(5) e gravo “abc’s”
>> Ele tenta gravar “abc\047s” o que causa erro
>>
>> Ta roça chegar num consenso aqui, rsrsrs
>>
>
> Cara, pelo jeito é sua aplicação que tá enviando os dados com encoding
> errado, confira o client_encoding, o encoding usado na aplicação e habilite
> o log_statements para ver o que a aplicação está enviando de fato para o
> servidor (parece que ela já está tentando tratar casos especiais, como aspa
> simples).
>
> Enquanto não encontrar a causa real do problema, outros casos estranhos
> vão surgir, com certeza.
>
> --
> Matheus de Oliveira
>
>  --
> ___
> 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
>
>


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


Re: [pgbr-geral] Text X Character Varying

2012-08-21 Thread Anselmo Silva
Dutra, porque ele pode gravar a formatação do texto mais simples que
richedit. Eu pessoalmente prefiro as tags de HTML que richedit.

Em 21 de agosto de 2012 17:14, Jean Domingues escreveu:

> sugiro que vc use bytea.
>
>   --
> *De:* Marcelo Silva 
> *Para:* Comunidade PostgreSQL Brasileira <
> pgbr-geral@listas.postgresql.org.br>
> *Enviadas:* Terça-feira, 21 de Agosto de 2012 15:38
> *Assunto:* [pgbr-geral] Text X Character Varying
>
>   Campo Text no Postgres é tipo Blob ?
>
> Por exemplo, se eu gravo em um campo Text a string
>
> {\rtf1\ansi\deff0{\fonttbl{\f0\fnil MS Sans Serif;}{\f1\fnil\fcharset0 MS
> Sans Serif;}}
> \viewkind4\uc1\pard\lang1046\b\f0\fs16 IMPORTANTE \b0
> \par
> \par \i\f1 Teste de documento\i0
> \par
> \par Teste de \ul documento\ulnone
> \par
> \par Teste de \strike documento\strike0\f0
> \par }
>
> Ele dá o erro:
>
> ---
> Debugger Exception Notification
> ---
> Project Project1.exe raised exception class EZSQLException with message
> 'SQL Error: ERRO:  sequência de bytes é inválida para codificação "UTF8":
> 0x00'. Process stopped. Use Step or Run to continue.
> ---
> OK   Help
> ---
>
> Já em um campo Character ele grava
>
> Qual o problema?
>
>
> Marcelo 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
>
>


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


Re: [pgbr-geral] PGDay PR: Cascavel abraça o Postgres!

2012-08-24 Thread Anselmo Silva
Para mim sair de Sergipe para São Paulo já é puxado. Para o Paraná é osso
hein!

Em 24 de agosto de 2012 06:55, Fábio Telles Rodriguez <
fabio.tel...@gmail.com> escreveu:

> Quem viu o site do evento em http://www.pgday.org.br/ deve ter notado a
> propaganda do Hooligans, um bar muito bacana da região onde fomos ao
> término do evento. Comentários à parte, fazia tempo que eu não via um bar
> com boa comida, boas cervejas, boa música e muita mulher bonita ao mesmo
> tempo. Uma certa brincadeira com o fime 300 de Esparta dizia "Os 300
> primeiros inscritos ganharão ingressos para o Hooligans". Eu achei bacana a
> brincadeira, bem espirituoso e tal. Mas era sério... haviam mais de 300
> inscritos de verdade. Na verdade, mais de 600 inscritos vindos de mais de
> 37 cidades!!! Sem contar os que se inscreveram na hora.
>
> No auditório, mais de 300 pessoas à tarde e um novo grupo de cerca de 300
> pessoas à noite (vamos aguardar as fotos e os números oficiais da
> organização). Fora, estandes de patrocinadores, coffee break,
> credenciamento com crachá e certificado, tudo como manda o figurino. Sim,
> houveram mais 3 laboratórios que ficaram lotados com duas rodadas de
> oficinas em cada.
>
> Na abertura oficial, o segredo do sucesso: As organizações comerciais e
> seus fóruns de tecnologia, junto com empresas de desenvolvimento softwares
> e universidades abraçaram o evento. Para os palestrantes, tratamento VIP.
> Passagens, hospedagem, translados, refeições, tudo por conta da
> organização.
>
> Eu realmente não paro de me surpreender com a comunidade brasileira de
> Postgres. Quando a gente menos espera, está no maior evento de Postgres do
> planeta. Os organizadores estão de parabéns. Talvez esteja na hora de tirar
> o PGBR de São Paulo mesmo e ouvir o nosso amigo Luis Fernando Bueno e
> perder o medo de ousar. No pior dos casos, podemos nos surpreender
> novamente.
>
> Meus parabéns aos organizadores e aos colegas de tantos eventos pelo país
> afora, Guedes, Diogo e Matheus.
>
> []s
>
> --
> Atenciosamente,
> Fábio Telles Rodriguez
> blog: http:// 
> http://tellesr.wordpress.com
> e-mail / gtalk / MSN: fabio.tel...@gmail.com
> Skype: fabio_telles
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Interpretar formula gravada em um campo

2012-08-27 Thread Anselmo Silva
podes criar uma trigger com uma função SQL que retorna a execução do campo
cálculo com o EXECUTE .

Em 27 de agosto de 2012 14:52, Carlos Antônio Pereira <
carlosanto...@utivida.com.br> escreveu:

> 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
>



-- 
Anselmo M. Silva
___
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-29 Thread Anselmo Silva
Não poderia ser somente "order by a.dt_mov"?

Em 29 de agosto de 2012 17:20, Ramiro Pamponet  escreveu:

> Em 29 de agosto de 2012 17:06, Edson Lidorio escreveu:
>
> Só ordena, no ano atual
>> veja como aparece:
>>
>> 3/2012
>> 4/2010
>> 4/2012
>> 5/2012
>> 6/2011
>> 6/2012
>> 7/2012
>> 8/2012
>>
>
> Tenta assim
>
> order by EXTRACT(YEAR from a.dt_mov), EXTRACT(MONTH from a.dt_mov)
>
>
>>
>>
>> 2012/8/22 Osvaldo Kussama 
>>
>>> Em 22/08/12, Tiago Adami escreveu:
>>> > Em 22 de agosto de 2012 00:05, Matheus de Oliveira
>>> >  escreveu:
>>> >>
>>> >> Em 21/08/2012 21:27, "Edson - Listas"  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'.
>>> >
>>>
>>>
>>> Mas neste caso não fica mais simples fazer:
>>>
>>> SELECT to_char(a.dt_mov, 'MM/') mes_ano, sum(a.vlr_final) total
>>> FROM movdirhe a
>>> WHERE a.dt_mov between '01/01/2010' and '21/08/2012'
>>> GROUP BY date_trunc('month', a.dt_mov)
>>> ORDER BY date_trunc('month', a.dt_mov);
>>>
>>> ou algo parecido?
>>>
>>> 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
>>
>>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Anselmo M. Silva
___
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-30 Thread Anselmo Silva
Em 30 de agosto de 2012 08:25, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
>
>
> 2012/8/29 Osvaldo Kussama 
>
>> Em 29/08/12, Matheus de Oliveira escreveu:
>> > 2012/8/29 Osvaldo Kussama 
>> >
>> >> Em 29/08/12, Edson Lidorio escreveu:
>> >> > Só ordena, no ano atual
>> >> > veja como aparece:
>> >> >
>> >> > 3/2012
>> >> > 4/2010
>> >> > 4/2012
>> >> > 5/2012
>> >> > 6/2011
>> >> > 6/2012
>> >> > 7/2012
>> >> > 8/2012
>> >> >
>> >>
>> >>
>> >> Mas você está usando ORDER BY date_trunc('month', a.dt_mov);?
>> >> O comportamento acima não é o usual na ordenação de um campo date.
>> >> Me parece que você está ordenando por to_char(a.dt_mov, 'MM/').
>> >>
>> >>
>> > Osvaldo, na verdade é sim, veja que se usar `ORDER BY
>> date_trunc('month',
>> > a.dt_mov);` apenas o mês será considerado na ordenação, logo todo mês de
>> > Junho (inteiro 6), por exemplo, vai ficar junto independente do ano que
>> > seja (2011, 2012, etc.), porque o ano não foi considerado. Logo a
>> ordenação
>> > tem que considerar o mês e o ano, sendo que o ano deve vir antes (ou o
>> > mesmo problema acontecerá), e temos, é claro, várias formas de fazer
>> isso,
>> > como:
>> >
>> >  * ORDER BY to_char(a.dt_mov, 'MM')
>> >  * ORDER BY extract(year from a.dt_mov), extract(month from a.dt_mov)
>> (e a
>> > variante com date_trunc, mesma coisa)
>> >
>> > Ambas já apresentadas aqui, e só deve-se tomar cuidado que o que
>> aparece no
>> > ORDER BY tem, *obrigatóriamente*, que aparecer no GROUP BY, ou o
>> PostgreSQL
>> > vai apresentar um erro.
>> >
>> > Atenciosamente,
>> > --
>> > Matheus de Oliveira
>> >
>>
>> Creio que você entendeu mal a definição da função date_truc. Para
>> tirar as dúvidas sugiro que você faça alguns testes.
>> Do manual:
>> "The function date_trunc is conceptually similar to the trunc function
>> for numbers.
>> date_trunc('field', source)
>> source is a value expression of type timestamp or interval. (Values of
>> type date and time are cast automatically to timestamp or interval,
>> respectively.) field selects to which precision to truncate the input
>> value. The return value is of type timestamp or interval with all
>> fields that are less significant than the selected one set to zero (or
>> one, for day and month)."
>>
>> Aproveitando o exemplo do Juliano:
>> SELECT date_trunc('month', d.d)
>> FROM (VALUES ('01/03/2012'::date), ('10/04/2010'), ('21/04/2012'),
>> ('09/02/2012'), ('10/04/2011')) d(d)
>> ORDER BY date_trunc('month', d.d);
>>date_trunc
>> 
>>  2010-04-01 00:00:00-03
>>  2011-04-01 00:00:00-03
>>  2012-02-01 00:00:00-02
>>  2012-03-01 00:00:00-03
>>  2012-04-01 00:00:00-03
>> (5 rows)
>>
>> Repare que todas as datas são truncadas para o primeiro dia o mês, ou
>> seja, é como se estivesse ordenando por ano/mês.
>>
>>
> Osvaldo, peço desculpas, fiquei até com vergonha agora. Já conhecia e
> sabia o que fazia a date_trunc, inclusive já usei em projetos, mas por
> total falta de atenção eu a confundi com a date_part, que faria exatamente
> o que eu descrevi... Desculpe novamente.
>
> E, de qualquer forma, talvez a date_trunc não seria boa pra ele exibir os
> dados (já que quer mês e ano), ao menos que formate pela aplicação. Mas
> ainda seria útil no ORDER BY e GROUP BY.
>
> Completando e corrigindo a minha lista, do que o pessoal já disse podemos
> usar:
>
>
>  * ORDER BY to_char(a.dt_mov, 'MM')
>  * ORDER BY extract(year from a.dt_mov), extract(month from a.dt_mov) (e a
> variante com *date_part*, mesma coisa)
>  * ORDER BY a.dt_mov
>  * ORDER BY date_trunc(a.dt_mov)
>
> Só não sei dizer qual seria mais performática, já que todos dão o mesmo
> resultado.
>
> --
> Matheus de Oliveira
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
 "mais performática"? Eu apostaria  ORDER BY a.dt_mov, por não executar
funções de conversão

-- 
Anselmo M. Silva
___
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-30 Thread Anselmo Silva
Em 30 de agosto de 2012 12:14, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
> 2012/8/30 Anselmo Silva 
>
>>
>>
>> Em 30 de agosto de 2012 08:25, Matheus de Oliveira <
>> matioli.math...@gmail.com> escreveu:
>>
>>>
>>>
>>>
>>> 2012/8/29 Osvaldo Kussama 
>>>
>>>> Em 29/08/12, Matheus de Oliveira escreveu:
>>>> > 2012/8/29 Osvaldo Kussama 
>>>> >
>>>> >> Em 29/08/12, Edson Lidorio escreveu:
>>>> >> > Só ordena, no ano atual
>>>> >> > veja como aparece:
>>>> >> >
>>>> >> > 3/2012
>>>> >> > 4/2010
>>>> >> > 4/2012
>>>> >> > 5/2012
>>>> >> > 6/2011
>>>> >> > 6/2012
>>>> >> > 7/2012
>>>> >> > 8/2012
>>>> >> >
>>>> >>
>>>> >>
>>>> >> Mas você está usando ORDER BY date_trunc('month', a.dt_mov);?
>>>> >> O comportamento acima não é o usual na ordenação de um campo date.
>>>> >> Me parece que você está ordenando por to_char(a.dt_mov, 'MM/').
>>>> >>
>>>> >>
>>>> > Osvaldo, na verdade é sim, veja que se usar `ORDER BY
>>>> date_trunc('month',
>>>> > a.dt_mov);` apenas o mês será considerado na ordenação, logo todo mês
>>>> de
>>>> > Junho (inteiro 6), por exemplo, vai ficar junto independente do ano
>>>> que
>>>> > seja (2011, 2012, etc.), porque o ano não foi considerado. Logo a
>>>> ordenação
>>>> > tem que considerar o mês e o ano, sendo que o ano deve vir antes (ou o
>>>> > mesmo problema acontecerá), e temos, é claro, várias formas de fazer
>>>> isso,
>>>> > como:
>>>> >
>>>> >  * ORDER BY to_char(a.dt_mov, 'MM')
>>>> >  * ORDER BY extract(year from a.dt_mov), extract(month from a.dt_mov)
>>>> (e a
>>>> > variante com date_trunc, mesma coisa)
>>>> >
>>>> > Ambas já apresentadas aqui, e só deve-se tomar cuidado que o que
>>>> aparece no
>>>> > ORDER BY tem, *obrigatóriamente*, que aparecer no GROUP BY, ou o
>>>> PostgreSQL
>>>> > vai apresentar um erro.
>>>> >
>>>> > Atenciosamente,
>>>> > --
>>>> > Matheus de Oliveira
>>>> >
>>>>
>>>> Creio que você entendeu mal a definição da função date_truc. Para
>>>> tirar as dúvidas sugiro que você faça alguns testes.
>>>> Do manual:
>>>> "The function date_trunc is conceptually similar to the trunc function
>>>> for numbers.
>>>> date_trunc('field', source)
>>>> source is a value expression of type timestamp or interval. (Values of
>>>> type date and time are cast automatically to timestamp or interval,
>>>> respectively.) field selects to which precision to truncate the input
>>>> value. The return value is of type timestamp or interval with all
>>>> fields that are less significant than the selected one set to zero (or
>>>> one, for day and month)."
>>>>
>>>> Aproveitando o exemplo do Juliano:
>>>> SELECT date_trunc('month', d.d)
>>>> FROM (VALUES ('01/03/2012'::date), ('10/04/2010'), ('21/04/2012'),
>>>> ('09/02/2012'), ('10/04/2011')) d(d)
>>>> ORDER BY date_trunc('month', d.d);
>>>>date_trunc
>>>> 
>>>>  2010-04-01 00:00:00-03
>>>>  2011-04-01 00:00:00-03
>>>>  2012-02-01 00:00:00-02
>>>>  2012-03-01 00:00:00-03
>>>>  2012-04-01 00:00:00-03
>>>> (5 rows)
>>>>
>>>> Repare que todas as datas são truncadas para o primeiro dia o mês, ou
>>>> seja, é como se estivesse ordenando por ano/mês.
>>>>
>>>>
>>> Osvaldo, peço desculpas, fiquei até com vergonha agora. Já conhecia e
>>> sabia o que fazia a date_trunc, inclusive já usei em projetos, mas por
>>> total falta de atenção eu a confundi com a date_part, que faria exatamente
>>> o que eu descrevi... Desculpe novamente.
>>>
>>> E, de qualquer forma, talvez a date_trunc não seria boa pra ele exibir
>>> os dados (já que quer mês e ano), ao menos que formate pela aplicação. Mas
>>> ainda seria útil no ORDER BY e GROUP BY.
>>>
>>> Completando e corrigindo a minha lista, do que o pessoal já disse
>>> podemos usar:
>>>
>>>
>>>  * ORDER BY to_char(a.dt_mov, 'MM')
>>>  * ORDER BY extract(year from a.dt_mov), extract(month from a.dt_mov) (e
>>> a variante com *date_part*, mesma coisa)
>>>  * ORDER BY a.dt_mov
>>>  * ORDER BY date_trunc(a.dt_mov)
>>>
>>> Só não sei dizer qual seria mais performática, já que todos dão o mesmo
>>> resultado.
>>>
>>  "mais performática"? Eu apostaria  ORDER BY a.dt_mov, por não executar
>> funções de conversão
>>
>>
> Não tenho certeza, pois tem a contrapartida de que o PostgreSQL tem que
> gerenciar muito mais chaves únicas na ordenação, o que poderia causar uso
> de arquivos temporários (principalmente se houver muitos registros).
>
> Mas de qualquer forma acho que a diferença dessas opções seriam poucas.
>
> --
> Matheus de Oliveira
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

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


Re: [pgbr-geral] RES: Cross Table

2012-08-30 Thread Anselmo Silva
Em 30 de agosto de 2012 14:30, K&M 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 :
> > 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


Re: [pgbr-geral] Servidor para estudo

2012-08-31 Thread Anselmo Silva
Em 31 de agosto de 2012 20:35, Eduardo Alexandre
escreveu:

> Boa noite,
>
> Aproveitando o ensejo de um tópico a respeito de servidor, estou
> providenciando um computador que ficará destinado principalmente para meus
> estudos de banco de dados.
> A opção está entre um computador com processador Intel I5 650 3.2Ghz ou um
> Phenon X4 quad core 965T 3.4Ghz.
> Para ambos, a previsão é de 8Gb de memória (talvez 16Gb se encontrar
> placa-mãe com suporte por preço acessível) e há a possibilidade de uso de
> disco SATA ou SSD.
> O banco de dados irá possuir 5 tabelas com cerca de 1 milhão de registros
> além de algumas tabelas menores (cerca de 40 mil a 500 mil registros).
> O trabalho principal do banco de dados será relacionado a consultas para
> cruzamentos de dados e também rodar o Pentaho acessando esses dados.
> Sei que os índices e outros recursos são cruciais e que o SSD irá
> representar ganho de performance, mas minha dúvida é em relação à compra do
> processador. Há um que é melhor que o outro ou tanto faz?
>
> Abraços,
>
> Eduardo
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

Ao se pensar em máquina para BD pense assim:
Muito acesso  = HD rápido ou SSD;
Muitas gravações = HD em RAID1 ou 10;
Muitos cálculos = Processador rápido (no geral os comuns mais modernos já
tá bom)

Seu cenário apresentado não projeta o uso.
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] USO DE FUNCTION

2012-09-03 Thread Anselmo Silva
queres fazer o insert nas duas ao mesmo tempo?


2012/9/3 Guimarães Faria Corcete DUTRA, Leandro 

> 2012/9/3 Eduardo Az - EMBRASIS :
> >
> > CREATE TABLE cadastro
> > (
> >   id serial NOT NULL,
> >   nome character varying(30) NOT NULL,
> >   nasc_dt date,
> >   CONSTRAINT cadastro_pkey PRIMARY KEY (id ),
> > );
>
> Evite chaves artificiais.  Use chave natural — por exemplo (nome,
> nasc_dt) e teu problema desaparece.
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] criar trigger para salvar registro anterior

2012-09-10 Thread Anselmo Silva
Em 9 de setembro de 2012 17:40, Leandro Guimarães Faria Corcete DUTRA <
l...@dutras.org> escreveu:

> Le 09/09/12 16:24-0300, Maria Elizandra Velasques de Souza a écrit :
> > Boa tarde! Estou usando postgresql junto com delphi xe
>
> O que quer dizer ‘usar’?  És usuária e (ou) programadora e (ou)
> admnistradora dessa base de dados?
>
>
> > e tem uma tela de
> > cadastro de clientes onde eu insiro novo registro o sistema pega o
> > proximo codigo, porém qndo eu edito o cadastro o sistema tb pega o
> > proximo código, não salva o registro anterior.
>
> Supondo que possas corrigir o código-fonte, use nextval e currval…
>
>
> > Alguem pode me ajudar a criar uma trigger para isso.
>
> Tem de ser gatilho?
>
> Seu cenário não foi bem específico. Como estás usando os recursos do
> postgres no Delphi para gerar o código e para exibí-lo ao editá-lo?
> --
> skype:leandro.gfc.dutra?chat   Yahoo!: ymsgr:sendIM?lgcdutra
> +55 (61) 3546 7191   gTalk: xmpp:leand...@jabber.org
> +55 (61) 9302 2691 ICQ/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
>



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


Re: [pgbr-geral] Camiseta PostgreSQL 9.2

2012-09-13 Thread Anselmo Silva
acho que sem a versão ela continuaria atualizada por mais tempo ;)

Em 13 de setembro de 2012 11:15, Fábio Telles Rodriguez <
fabio.tel...@gmail.com> escreveu:

> Ficou bem bacana e vende no Brasil. Quem quiser me comprar uma... eu
> aceito!
>
>
> http://www.zazzle.com.br/tshirt_basico_de_postgresql_9_2_homens-235799412707282052
>
>
>
> --
> Atenciosamente,
> Fábio Telles Rodriguez
> blog: http:// 
> http://tellesr.wordpress.com
> e-mail / gtalk / MSN: fabio.tel...@gmail.com
> Skype: fabio_telles
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
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] Declarar Constante

2012-09-13 Thread Anselmo Silva
Pessoal, pergunta pós google busca:

Como declaro uma constante no postgres?


Algo Assim:

Create constant UM integer;

Select UM + UM

Resultado : 2

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


Re: [pgbr-geral] Declarar Constante

2012-09-13 Thread Anselmo Silva
lembrando de linguagens de programação, algo assim:

*Create constant UM = 1 as type integer;*

Não me expressei completamente na pergunta, mas seria algo assim.

Em 13 de setembro de 2012 16:26, Vinicius Santos <
vinicius.santos.li...@gmail.com> escreveu:

>
>> Algo Assim:
>>
>> Create constant UM integer;
>>
>> Select UM + UM
>>
>> Resultado : 2
>>
>
> Isso não existe. Além disso, como o PostgreSQL iria saber que UM é igual a
> 1?
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Declarar Constante

2012-09-13 Thread Anselmo Silva
Foi o que pensei. Que pena! Seria muito útil. Obrigado Vinícios.


Em 13 de setembro de 2012 16:44, Vinicius Santos <
vinicius.santos.li...@gmail.com> escreveu:

>
> lembrando de linguagens de programação, algo assim:
>>
>> *Create constant UM = 1 as type integer;*
>>
>> Não me expressei completamente na pergunta, mas seria algo assim.
>>
>
> Isso não é possível.
> Você só vai conseguir usar variáveis, e não constantes, dentro funções
> escritas em alguma PL. plpgSQL, por exemplo.
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Camiseta PostgreSQL 9.2

2012-09-13 Thread Anselmo Silva
Tô dizendo que seria melhor explorar a marca que a versão ou
funcionalidades.

Em 13 de setembro de 2012 17:47, Bruno Silva escreveu:

> Rapaz, a caneca é feia doido!
> Bruno E. A. Silva.
> Analista de Sistemas.
>
>
> On Thu, Sep 13, 2012 at 5:45 PM, Flavio Henrique Araque Gurgel
>  wrote:
> > On 13-09-2012 14:50, Fábio Telles Rodriguez wrote:
> >> Mas esqueçam a camiseta, eu quero é a caneca!!!
> >>
> >>
> http://www.zazzle.com.br/postgres9_cerveja_stein_caneca-168360753015294030
> >
> > Mas a caneca é com o logo de lançamento do PostgreSQL 9.0!
> > Replicação já é dia-a-dia pra nós :)
> >
> > []s
> >
> > __
> > Flavio Henrique A. Gurgel
> > Líder de Projetos Especiais
> > Consultoria, Projetos & Treinamentos 4LINUX
> > Tel1: +55-11.2125-4747 ou 2125-4748
> > www.4linux.com.br
> > email: fla...@4linux.com.br
> > __
> > FREE SOFTWARE SOLUTIONS
> > ___
> > 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
>



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


Re: [pgbr-geral] REF: CONTAGEM TOTAL.

2012-09-26 Thread Anselmo Silva
rapidinho com window function pode ser assim

(SELECT
CASE WHEN RECPAGO = 1 THEN 'PAGO' ELSE 'ABERTO' END,
COUNT(CHAVEPRIMARIA) OVER (PATITION BY RECPAGO)
FROM RECEBER
WHERE
RECCLIENTE = 5444 AND
EXTRACT(YEAR FROM RECDATAVENCIMENTO) = '2011'

)UNION ALL(

SELECT
'TOTAL',
COUNT(*)
FROM RECEBER
WHERE
RECCLIENTE = 5444 AND
EXTRACT(YEAR FROM RECDATAVENCIMENTO) = '2011')

2012/9/26 Osvaldo Kussama 

> Em 26/09/12, Paulo escreveu:
> > Ola pessoal,
> >
> > Tenho a seguinte sentença:
> >
> > SELECT
> >
> >   count(*)
> >
> > FROM
> >
> > receber
> >
> > WHERE
> >
> > reccliente = 5444 and
> >
> > extract(year from recdatavencimento) = '2011'
> >
> > GROUP BY
> >
> >   CASE
> >
> >WHEN recpago = 1 then 'Pago'
> >
> >WHEN recpago = 0 then 'Aberto'
> >
> >   END
> >
> >
> >
> > RETORNA O SEGUINTE REGISTROS:
> >
> > 14 pago
> >
> > 22 aberto
> >
> >
> >
> > Preciso na mesma sentença retornar o total dos registros:
> >
> > Ex:
> >
> > 14 pago
> >
> > 22 aberto
> >
> > 36 total
> >
> >
> >
> > Alguém tem alguma ideia ¿
> >
>
>
> Num formato um pouco diferente. Verifique se atende:
>
> SELECT  sum(CASE WHEN recpago = 1 then 1 ELSE 0 END) AS "Pago",
> sum(CASE WHEN recpago = 0 then 1 ELSE 0 END) AS "Aberto",
> count(*) AS "Total"
> FROM receber
> WHERE reccliente = 5444 and extract(year from recdatavencimento) = 2011;
>
> Osvaldo
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] Imagem no delphi

2012-09-27 Thread Anselmo Silva
Um Campo do tipo blob numa query e um Timage no form faço assim


Procedure frm1.Image_logoClick(Sender: TObject);
var
  imagem: TPicture;
  stream: TStream;
  img2: TJPEGImage;
begin
  try
imagem := TPicture.Create;
OpenPictureDialog.Execute;
if OpenPictureDialog.FileName <> '' then
begin
  imagem.LoadFromFile(OpenPictureDialog.FileName);
  if (imagem.Width <> 180) or (imagem.Height <> 80) then
  begin
Application.MessageBox('As dimensões da imagem devem ser de 180 x
80 pixels!', 'teste', MB_OK + MB_ICONINFORMATION);
  end
  else
  begin
if not (zquery_image_logo.State = dsInsert) and
(zquery_image_logo.RecordCount > 0) then
begin
  zquery_image_logo.Open;
  zquery_image_logo.Delete;
  zquery_image_logo.Insert;
end;
Image_logo.Picture := imagem;
if not (Modulo1.zquery_image_logo.State in [dsInsert, dsEdit]) then
zquery_image_logo.edit;

TBlobField(zquery_image_logo.FieldByName('IMAGEM')).Assign(imagem.Graphic);

img2:= TJPEGImage.Create;
stream :=
ZQuery_image_logo.CreateBlobStream(ZQuery_image_logo.FieldByName('IMAGEM'),
bmRead);
img2.LoadFromStream(stream);
img2.Free;
//
imagem.Free;
  end;
end;
  except
on e: exception do ShowMessage(e.Message);
  end;
end;

Seu uso está limitado a imagens JPEG


Em 27 de setembro de 2012 14:22, Francisco Adriano Flores <
franciscoadrianoflo...@gmail.com> escreveu:

> Éverton,
>
> Qual é versão do teu Delphi ?
>
> Em 27 de setembro de 2012 13:58, Éverton Bueno Lima <
> everton_bueno_l...@hotmail.com> escreveu:
>
>> Ola pessoal,
>>
>> ** **
>>
>> ** **
>>
>> Eu criei um tipo bytea para poder salvar a imagem no meu banco de dados
>> so que não estou conseguindo salvar pelo Delphi alguém já fez esse
>> procedimento de salvar uma  imagem no postgres pelo Delphi, estou
>> utilizando conexão adoquery.
>>
>> ** **
>>
>> ** **
>>
>> ___
>> 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
>
>


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


Re: [pgbr-geral] problemas com views

2012-10-02 Thread Anselmo Silva
Não

Em 2 de outubro de 2012 23:12, Pedro B. Alves escreveu:

> Pessoa, posso está fazendo algo errado?
>
> tenho uma view que tem o campo descricao da tabela de produtos, se eu
> alterar o tipo de dado do campo descricao da tabela produtos vou ter que
> excluir todas as views que possuem referencia a este campo, e criar-las
> novamente?
>
> É isso mesmo?
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] problemas com views

2012-10-02 Thread Anselmo Silva
http://stackoverflow.com/questions/3243863/problem-with-postgres-alter-table
http://archives.postgresql.org/pgsql-hackers/2006-03/msg00586.php

2012/10/2 Pedro B. Alves 

>
>
> Em 2 de outubro de 2012 23:18, Anselmo Silva escreveu:
>
>> Não
>>
>>
> Qual das perguntas?
>
>
>
> Dá uma olhada neste erro:
>
> ERROR:  cannot alter type of a column used by a view or rule
> DETAIL:  rule _RETURN on view vprodutos_com_contrato_servico depends on
> column "descricao"
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
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] IF, UPDATE E RETURNING

2012-10-17 Thread Anselmo Silva
CENÁRIO:

create temp table teste (id serial not null, x numeric, y numeric, z
numeric, primary key(id));

insert into teste (x,y,z) values(1,2,3),(4,5,6),(7,8,9)

Do
$$
begin
IF (UPDATE TESTE SET X = 0, Y = 0, Z = 0 WHERE X = 1 RETURNING ((X+Y+Z) =
0)) THEN RAISE NOTICE 'TESTE CONCLUÍDO COM SUCESSO'; END IF;
end;
$$
language plpgsql;


ERRO:  erro de sintaxe em ou próximo a "UPDATE"
LINE 4:  IF (PERFORM UPDATE TESTE SET X = 0, Y = 0, Z = 0 WHERE X = ...
 ^
** Error **
ERRO: erro de sintaxe em ou próximo a "UPDATE"
SQL state: 42601
Character: 27


Seria possível a abordagem acima? se sim onde estou errando?
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] IF, UPDATE E RETURNING

2012-10-17 Thread Anselmo Silva
A idéia é emitir a msg se a soma resultante do update seja 0(zero) em uma
só declaração sem usar duas linhas, pois teria que alimentar uma variável
ou fazer um novo select na base, se possível.

Em 17 de outubro de 2012 15:07, Fabrízio de Royes Mello <
fabriziome...@gmail.com> escreveu:

>
> 2012/10/17 Anselmo Silva 
>
>> CENÁRIO:
>>
>> create temp table teste (id serial not null, x numeric, y numeric, z
>> numeric, primary key(id));
>>
>> insert into teste (x,y,z) values(1,2,3),(4,5,6),(7,8,9)
>>
>> Do
>> $$
>> begin
>> IF (UPDATE TESTE SET X = 0, Y = 0, Z = 0 WHERE X = 1 RETURNING ((X+Y+Z) =
>> 0)) THEN RAISE NOTICE 'TESTE CONCLUÍDO COM SUCESSO'; END IF;
>> end;
>> $$
>> language plpgsql;
>>
>>
>> ERRO:  erro de sintaxe em ou próximo a "UPDATE"
>> LINE 4:  IF (PERFORM UPDATE TESTE SET X = 0, Y = 0, Z = 0 WHERE X = ...
>>  ^
>> ** Error **
>> ERRO: erro de sintaxe em ou próximo a "UPDATE"
>> SQL state: 42601
>> Character: 27
>>
>>
>> Seria possível a abordagem acima? se sim onde estou errando?
>>
>>
> Pelo que entendi, sua intenção e emitir aquela mensagem via RAISE NOTICE
> caso o update seja executado com sucesso, ou seja que altere linhas da
> tabela. Se esse entendimento está correto então vc pode fazer assim:
>
> DO
> $$
> BEGIN
> UPDATE TESTE SET X = 0, Y = 0, Z = 0 WHERE X = 1;
>  IF FOUND THEN
>  RAISE NOTICE 'TESTE CONCLUÍDO COM SUCESSO';
> END IF;
> END;
> $$
> LANGUAGE plpgsql;
>
>
> Att,
>
> --
> Fabrízio de Royes Mello
> Consultoria/Coaching PostgreSQL
> >> Blog sobre TI: http://fabriziomello.blogspot.com
> >> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
> >> Twitter: http://twitter.com/fabriziomello
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] IF, UPDATE E RETURNING

2012-10-17 Thread Anselmo Silva
Flávio, o top posting não foi intencional... o Gmail posiciona no topo do
e-mail anterior para responder.

Em 17 de outubro de 2012 15:53, Flávio Alves Granato <
flavio.gran...@gmail.com> escreveu:

>
> Anselmo Silva writes:
>
> > A idéia é emitir a msg se a soma resultante do update seja 0(zero) em uma
> > só declaração sem usar duas linhas, pois teria que alimentar uma variável
> > ou fazer um novo select na base, se possível.
> >
> Galera,
>
> Vamos evitar o top posting, vamos usar um pouco mais de netiqueta[1]. Assim
> fica mais fácil de ler as respostas de vocês e mais fácil também de
> outras pessoas com a mesma dificuldade ler e entender o que aconteceu,
> pois se fizerem top posting a pessoa terá que ler debaixo para cima mas
> a cada mensagem ler de cima para baixo, é um exercício desnecessário,
> não acham?
>
> Abraços,
>
> [1] http://pt.wikipedia.org/wiki/Netiqueta
>
> --
> Flávio Alves Granato
> gpg: 968F:A938:70B9:82C7:5198:2C74:13CB:2C25:EF1E:726D
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] IF, UPDATE E RETURNING

2012-10-17 Thread Anselmo Silva
Em 17 de outubro de 2012 17:41, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
>
> 2012/10/17 Anselmo Silva 
>
>> Flávio, o top posting não foi intencional... o Gmail posiciona no topo
>> do e-mail anterior para responder.
>>
>>
> Cara, é só você mover o cursor e pressionar enter.
>
>
>> Em 17 de outubro de 2012 15:53, Flávio Alves Granato <
>> flavio.gran...@gmail.com> escreveu:
>>
>>
>>> Anselmo Silva writes:
>>>
>>> > A idéia é emitir a msg se a soma resultante do update seja 0(zero) em
>>> uma
>>> > só declaração sem usar duas linhas, pois teria que alimentar uma
>>> variável
>>> > ou fazer um novo select na base, se possível.
>>> >
>>> Galera,
>>>
>>> Vamos evitar o top posting, vamos usar um pouco mais de netiqueta[1].
>>> Assim
>>> fica mais fácil de ler as respostas de vocês e mais fácil também de
>>> outras pessoas com a mesma dificuldade ler e entender o que aconteceu,
>>> pois se fizerem top posting a pessoa terá que ler debaixo para cima mas
>>> a cada mensagem ler de cima para baixo, é um exercício desnecessário,
>>> não acham?
>>>
>>> Abraços,
>>>
>>> [1] http://pt.wikipedia.org/wiki/Netiqueta
>>>
>>> --
>>> Flávio Alves Granato
>>> gpg: 968F:A938:70B9:82C7:5198:2C74:13CB:2C25:EF1E:726D
>>> ___
>>> pgbr-geral mailing list
>>> pgbr-geral@listas.postgresql.org.br
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>
>>
>>
>> --
>> Anselmo M. Silva
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
>
> --
> Matheus de Oliveira
> Analista de Banco de Dados PostgreSQL
> Dextra Sistemas - MPS.Br nível F!
> www.dextra.com.br/postgres
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
blz bug do top posting resolvido... alguém saberia a resposta à minha
pergunta?

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


Re: [pgbr-geral] IF, UPDATE E RETURNING

2012-10-17 Thread Anselmo Silva
>
> > blz bug do top posting resolvido... alguém saberia a resposta à minha
> > pergunta?
> >
> Viu como o top-posting não é recomendado? Sua pergunta foi respondida em
> [1].
> Já que estamos falando de n-etiqueta, é um bom hábito cortar (remover) as
> partes irrelevantes ao contexto das mensagens anteriores.
>
>
> [1]
> http://listas.postgresql.org.br/pipermail/pgbr-geral/2012-October/033151.html



Então Euler, não é possível a abordagem pretendida no plpgsql?

* E agora a n-etiqueta tá massa?

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


Re: [pgbr-geral] IF, UPDATE E RETURNING

2012-10-17 Thread Anselmo Silva
>
>
> > Então Euler, não é possível a abordagem pretendida no plpgsql?
> >
> Não. Utilize uma variável.
>
>
Como já disse, não há problema em usar variável. Fiz a pergunta para saber
se seria possivel, já que
não entendi o erro retornado. Mateus, não vim de Firebird, apesar de já ter
brincado um pouco com ele.
Eu cogitei essa possibilidade pelo seguinte motivo:
1 - A cláusula "IF" espera um boolean para tomar decisão.
2 - Um SELECT funciona redondo dentro de um "IF"
3 - O Returning retona valores idêntico a um SELECT

Logo, um returning de um UPDATE seguro para retornar somente um valor seria
perfeitamente possivel do "IF" reconhecer, mas,
não é. Só me intriga o PORQUÊ, pois a idéia é ótima e não vejo implicações
para uma síntese dessa. Será que o pessoal do HACKERS me
xingaria muito se sugerisse isso?

Bem, lá vamos nós às variáveis... valeu a todos!
-
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexão dbExpress X zeosLib

2012-10-23 Thread Anselmo Silva
2012/10/23 Marcelo Silva 

> Zeos sem duvida
>
>
> -Mensagem Original-
> From: Itamar Reis Peixoto
> Sent: Tuesday, October 23, 2012 11:13 PM
> To: Comunidade PostgreSQL Brasileira
> Subject: Re: [pgbr-geral] Conexão dbExpress X zeosLib
>
> 2012/10/23 Antonio Cesar :
> > Boa noite.
> > Ultilizo o delphi como liguagem de programação e para conexão com o
> > postgresql estou usando zeoslib, preciso iniciar um novo projeto com
> > delphi
> > XE2.
> > O que os amigos da lista sugerem?
> > zeoslib versão free ou o dbExpress.
> >
>
> se 'e um novo projeto te recomendo utilizar o qt ou python.
>
>
> --
> 
>
> Itamar Reis Peixoto
> http://www.quebarato.com.br/perfil/itamarjp
> ___
> 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
>


Se a opção é somente free, corroboro com Zeos, mas, uma opção muito boa,
exceto pelo quesito 'não-free' é http://www.devart.com/pgdac/ordering.html
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ultimos N Registros de cada item.

2012-11-07 Thread Anselmo Silva
Em 7 de novembro de 2012 10:35, Ciro  escreveu:

> Ola Luis, obrigado pela resposta ...
>
> Mas uma coisa, se colocar LIMIT 3 ele vai trazer soh 3 entradas certo ?
>
> Minha duvida, eh como fazer para analisar CADA item e trazer as ultimas 3
> vendas de cada um ..
>
>
use offset
-- 
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] Calculo Louco - Ajuda

2012-11-28 Thread Anselmo Silva
gostaria de um retorno boolean para

SELECT A=B=C=D=E=F=G=H é possível numa só declaração SQL sem sem saber
o numero de elementos?

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


Re: [pgbr-geral] Calculo Louco - Ajuda

2012-11-28 Thread Anselmo Silva
>
> On 28-11-2012 12:13, Anselmo Silva wrote:
> > gostaria de um retorno boolean para
> >
> > SELECT A=B=C=D=E=F=G=H é possível numa só declaração SQL sem sem
> saber o
> > numero de elementos?
> >
> Seja mais específico... Qual o tipo dos elementos? Quem fornecerá esses
> elementos? Você montará esta consulta dinamicamente em uma linguagem de
> programação?
>
> world=# SELECT (1 = 2) and (1 <> 3);
>  ?column?
> ──
>  f
> (1 registro)
>
>
Os elementos são NUMERIC, os elementos são campos de uma tabela e a
consulta não é dinâmica. Quero saber se são todos iguais então teorizei o
select acima citado.
Eu posso usar sua abordagem, apenas teorizei se era possível outra
abordagem apenas com operadores '=', já que é 'humanamente' lógico pois
qualque elemento diferente retornaria Falso.
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Calculo Louco - Ajuda

2012-11-28 Thread Anselmo Silva
>
> >> > gostaria de um retorno boolean para
> >> >
> >> > SELECT A=B=C=D=E=F=G=H é possível numa só declaração SQL sem sem
> >> > saber o
> >> > numero de elementos?
> >> >
> >> Seja mais específico... Qual o tipo dos elementos? Quem fornecerá esses
> >> elementos? Você montará esta consulta dinamicamente em uma linguagem de
> >> programação?
> >>
> >> world=# SELECT (1 = 2) and (1 <> 3);
> >>  ?column?
> >> ──
> >>  f
> >> (1 registro)
> >>
> >
> > Os elementos são NUMERIC, os elementos são campos de uma tabela e a
> consulta
> > não é dinâmica. Quero saber se são todos iguais então teorizei o select
> > acima citado.
> > Eu posso usar sua abordagem, apenas teorizei se era possível outra
> abordagem
> > apenas com operadores '=', já que é 'humanamente' lógico pois qualque
> > elemento diferente retornaria Falso.
>
>
> AFAICS, não faz parte da linguagem SQL esta sintaxe, entretanto o
> operador '='  recebe dois parametros
> o 'esquerda' e o 'direita', e o PostgreSQL converte isto para algo
> como pg_catalog.equal(direita, esquerda)
> o que acaba impossibilitando esta sintaxe também para o operador '='
>
> Mas voce pode fazer de outra maneira...
>
> postgres=# select a = ALL(ARRAY[a,b,c])  from (SELECT 1 as a, 2 as b,
> 3 as c, 1) as x;
>  ?column?
> --
>  f
> (1 row)
>
>
> postgres=# select a = ALL(ARRAY[a,b,c])  from (SELECT 1 as a, 1 as b,
> 1 as c, 1) as x;
>  ?column?
> --
>  t
> (1 row)
>
>
A função all realmente resolve e bem é limpa. apenas comentando a resposta
do Dickson:

Acha que seria algo interessante a se implementar? Visto que, como posso
fazer SELECT A+B+C+D+ETC...
seria um Ctrl+C e Ctrl+V no operador de soma (grosseiramente falando hehe).
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Calculo Louco - Ajuda

2012-11-28 Thread Anselmo Silva
Realmente Dickson, nesses termos é complicado para o interpretador, embora
não impossível. Ainda bem que não é algo crítico e há alternativas bem
viáveis.
A idéia do tópico era só discutir a possibilidade mesmo.

Obrigado a todos pelas dicas.


Em 28 de novembro de 2012 15:52, Dickson S. Guedes
escreveu:

> Em 28 de novembro de 2012 15:40, Anselmo Silva 
> escreveu:
> >> >> > gostaria de um retorno boolean para
> >> >> >
> >> >> > SELECT A=B=C=D=E=F=G=H é possível numa só declaração SQL sem
> sem
> >> >> > saber o
> >> >> > numero de elementos?
> >> >> >
> >> >> Seja mais específico... Qual o tipo dos elementos? Quem fornecerá
> esses
> >> >> elementos? Você montará esta consulta dinamicamente em uma linguagem
> de
> >> >> programação?
> >> >>
> >> >> world=# SELECT (1 = 2) and (1 <> 3);
> >> >>  ?column?
> >> >> ──
> >> >>  f
> >> >> (1 registro)
> >> >>
> >> >
> >> > Os elementos são NUMERIC, os elementos são campos de uma tabela e a
> >> > consulta
> >> > não é dinâmica. Quero saber se são todos iguais então teorizei o
> select
> >> > acima citado.
> >> > Eu posso usar sua abordagem, apenas teorizei se era possível outra
> >> > abordagem
> >> > apenas com operadores '=', já que é 'humanamente' lógico pois qualque
> >> > elemento diferente retornaria Falso.
> >>
> >>
> >> AFAICS, não faz parte da linguagem SQL esta sintaxe, entretanto o
> >> operador '='  recebe dois parametros
> >> o 'esquerda' e o 'direita', e o PostgreSQL converte isto para algo
> >> como pg_catalog.equal(direita, esquerda)
> >> o que acaba impossibilitando esta sintaxe também para o operador '='
> >>
> >> Mas voce pode fazer de outra maneira...
> >>
> >> postgres=# select a = ALL(ARRAY[a,b,c])  from (SELECT 1 as a, 2 as b,
> >> 3 as c, 1) as x;
> >>  ?column?
> >> --
> >>  f
> >> (1 row)
> >>
> >>
> >> postgres=# select a = ALL(ARRAY[a,b,c])  from (SELECT 1 as a, 1 as b,
> >> 1 as c, 1) as x;
> >>  ?column?
> >> --
> >>  t
> >> (1 row)
> >>
> >
> > A função all realmente resolve e bem é limpa. apenas comentando a
> resposta
> > do Dickson:
> >
> > Acha que seria algo interessante a se implementar? Visto que, como posso
> > fazer SELECT A+B+C+D+ETC...
> > seria um Ctrl+C e Ctrl+V no operador de soma (grosseiramente falando
> hehe).
>
> Você pode fazer operadores especiais, veja que ao fazer
>
> select 1=2=3;
> ERROR:  operator does not exist: integer = boolean
> LINE 1: select 1=2=3;
>
> O erro que dá é porque a saída de uma expressão, que no caso é
> booleana, é passada para a entrada da outra expressão, e neste caso
> não tem como comparar um boolean de uma expressão (1=2 que retorna
> false) com o inteiro da outra ( false = 3 por exemplo). Já no caso do
> + isto funciona porque as somas podem ser concatenadas.
>
> No caso da soma ficaria
>
> select 1+2+3;
>
> é expandido para algo como (o nome 'plus' é hipotético):
>
> SELECT plus(plus(1,2),3)
>
> Já este:
>
> SELECT 1+2+3;
>
> seria expandido para algo como (o nome 'plus' é hipotético):
>
> SELECT equal(equal(1,2), 3);
>
> porém equal(x, y) retorna boolean, mas x e y precisam ser integer.
>
> Você pode criar um operador que espera (boolean, integer) mas isto não
> resolveria o seu caso. Talvez um tipo composto.
>
> Basicamente seria isto.
>
> []s
> --
> Dickson S. Guedes
> mail/xmpp: gue...@guedesoft.net - skype: guediz
> http://guedesoft.net - http://www.postgresql.org.br
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] JPG error #53

2012-11-29 Thread Anselmo Silva
Você deve estar tentando inserir ou ler uma imagem na base. Já tive esse
problema com o zeos e resolvi assim:

No postgresql.conf encontre a linha:

#bytea_output = 'escape'

É algo com a zeoslib que não dá suporte a hex, então uso 'escape'. No
postgres vem default 'hex'
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] [pbgr-geral] ADD COLUMN

2012-11-30 Thread Anselmo Silva
Bem, nos meus testes auditando a tabela que adiciona uma nova coluna com
default não gera o evento update, então suponho ser mais 'barato' esta
abordagem.
para informações mais técnicas, vide os mestres da lista.


Em 30 de novembro de 2012 02:08, Danilo Silva
escreveu:

> Pessoal,
>
> Preciso incluir um novo campo em uma tabela, esse campo é do tipo integer.
> Preciso que todos registros recebam o valor 1 referente a esse novo campo.
>
> Minha dúvida está em saber qual dos comandos abaixo seria mais rápido, ou
> não faz diferença?
>
> [1] ALTER TABLE tabela ADD COLUMN novo_campo integer; UPDATE tabela SET
> novo_campo = 1;
> ou
> [2] ALTER TABLE tabela ADD COLUMN novo_campo integer DEFAULT 1;
>
> Lembrando que tanto faz em deixar ou não o campo com um valor DEFAULT, mas
> como a tabela já possui registros (atualmente está com 450 de
> registros), preciso que o valor seja 1 para os registros já existentes.
>
> []s
> Danilo
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] [pbgr-geral] ADD COLUMN

2012-11-30 Thread Anselmo Silva
> Pessoal,
>>
>> Preciso incluir um novo campo em uma tabela, esse campo é do tipo
>> integer. Preciso que todos registros recebam o valor 1 referente a esse
>> novo campo.
>>
>> Minha dúvida está em saber qual dos comandos abaixo seria mais rápido, ou
>> não faz diferença?
>>
>> [1] ALTER TABLE tabela ADD COLUMN novo_campo integer; UPDATE tabela SET
>> novo_campo = 1;
>> ou
>> [2] ALTER TABLE tabela ADD COLUMN novo_campo integer DEFAULT 1;
>>
>> Lembrando que tanto faz em deixar ou não o campo com um valor DEFAULT,
>> mas como a tabela já possui registros (atualmente está com 450 de
>> registros), preciso que o valor seja 1 para os registros já existentes.
>>
>> []s
>> Danilo
>>
>
> --
> Anselmo M. Silva
>

O link da discursão abaixo explana melhor...
http://postgresql.1045698.n5.nabble.com/Alter-table-com-campo-default-td2028776.html

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


Re: [pgbr-geral] top-posting e regras da lista

2012-12-06 Thread Anselmo Silva
Observe por que acontece muito isso:
Neste momento propositalmente fiz um top-posting e não cortei os trechos
irrelevantes.
O caso é que na pressa,(que não justifica), no caso do Gmail ele põe um
memo prontinho para responder
onde só aparece o espaço para digitar e numa linha abaixo três pontos (...)
que é a parte da(s) mensagem(ns) anterior(es).

Então, no caso do gmail seria algo como

1 - Clicar no Memo de responder;
2 - Clicar no (...);
3 - Remover o que é irrelevante;
4 - Colocar o ponteiro no fim da mensagem
5 - Digitar sua resposta

Às vezes, sinceramente eu me passo, mas, concordo com a regra.
É bom relembrar aos desavisados, pois acredito que na maioria da vezes não
seja por mau, e sim desinformação.

Em 6 de dezembro de 2012 10:25, Euler Taveira  escreveu:

> On 06-12-2012 09:56, Joao Paulo Rieg wrote:
> > Seguindo a regra da lista Angelo
> > No Top Post... leia lá no final!
> >
> A questão *não* é só top-posting... Além de evitar top-posting, o *mais*
> importante (e que pouca gente faz aqui) é remover o que é irrelevante, ou
> seja, deixe somente os trechos do email que são relevantes a sua resposta.
> IMHO não adianta nada ter como regra nesta lista o 'bottom-posting' se o
> pessoal não cortar os trechos irrelevantes (fica aquele email enorme
> mandado
> pelos clientes top-posting -- argh GMai^H^H^H).
>
> Às vezes, não respondo a mensagens porque é difícil chegar ao ponto. (Essa
> mensagem mesmo a qual estou respondendo eu não consegui descifrar quem é a
> pergunta e quem é a resposta.) Tenha como prática cortar tudo que é
> desnecessário (inclusive aquelas enormes assinaturas). Além de agilizar as
> discussões, melhoramos a qualidade do histórico da lista (vide *relevância
> do
> assunto* [1]).
>
>
> [1] http://www.postgresql.org.br/RegrasLista
>
>
> --
>Euler Taveira de Oliveira - 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
>



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


Re: [pgbr-geral] Limites do PostgreSQL

2012-12-10 Thread Anselmo Silva
> Olá,
>
> Estou iniciando um projeto de pesquisa que chegará a ter cerca de 5,5
> milhões de registros por ano analisado.
>
> Pelo que consegui achar de informação, não há uma limitação do banco de
> dados PostgreSQL, ficando a limitação a critério de espaço em disco.
>
> Está correto?
>
Pouco mais de 600 registros/hora? isso é sopa no mel para o postgres. Veja:

> Tamanho Máximo do Banco de DadosIlimitadoTamanho máximo de uma Tabela32 
> TBTamanho
> Máximo de uma Linha1.6 TBTamanho Máximo de um Campo1 GBMáximo de Linhas
> por TabelaIlimitadoMáximo de Colunas por Tabela250–1600 dependendo do
> tipo de colunaMáximo de Índices por TabelaIlimitado
>
Fonte:http://www.postgresql.org.br/sobre
Vai em frente com o projeto e qualquer dúvida conte com o apoio da
comunidade.
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] top-posting e regras da lista

2012-12-12 Thread Anselmo Silva
>
> >> Mas e o bottom-post? Isso não tem no Gmail.
> >
> > O que a lista pede não é bottom-post.
> > A lista pede pra responder quotando.
>
>  Ok, mas top-post não é aceito.

>
> Estou me referindo à seguinte frase dita nesta thread:
> "O Gmail é configurável, inclusive permitindo texto puro e bottom-post
> por padrão, com assinatura no final."
>
> Gostaria de aprender a configurar o bottom-post por padrão no Gmail.


Não há tal configuração. No groups do google o pessoal fala que não há
necessidade pois o padrão de fóruns é top-post.
Mas regra é regra e na lista postgres não é aceito top-post


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


Re: [pgbr-geral] top-posting e regras da lista

2012-12-12 Thread Anselmo Silva
Em 12 de dezembro de 2012 11:42, Euler Taveira  escreveu:

> On 12-12-2012 12:04, Anselmo Silva wrote:
> > Não há tal configuração. No groups do google o pessoal fala que não há
> > necessidade pois o padrão de fóruns é top-post.
> > Mas regra é regra e na lista postgres não é aceito top-post
> >
> fórum != lista. Aqui é lista de discussão. Não utilizamos fórum. Então,
> bottom-post sempre para o bem das discussões e do histórico.
>
> yes sir

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


Re: [pgbr-geral] Site do PGBR 2013 no ar

2012-12-22 Thread Anselmo Silva
Parece que vou ficar fora dessa... pesquisei os voos DE Aracaju-SE para
Porto velho: mais de 3.000,00 (facada), mas, vou fazer minha parte
divulgando.


Em 19 de dezembro de 2012 18:56, Luis Fernando Bueno
escreveu:

> Prezados colegas:
>
> O site do PGBR 2013 já está no ar. Pedimos ajuda no sentido de divulgar o
> site para seus contatos, via email ou redes sociais.
>
> Se identificaram alguma falha e/ou erro, favor comunicar.
>
> http://pgbr.postgresql.org.br
>
> Obrigado.
>
> Luis Fernando Bueno
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
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] Window function filtrado

2013-01-09 Thread Anselmo Silva
Pessoal, li a documentação sobre window function..mas não consegui enteder
como fazer o que quero, por isso lá vai:

Quero fazer algo assim:

 select pv.codvendedor,
vdd.nome as vendedor,
sum(valordevolvido) over (partition by codvendedor) as total_vendedor
vdvp.codvenda,
vdvp.coddevolucao,
dv.datadevolucao,
vdvp.codproduto,
vdvp.produto,
vdvp.qtde,
vdvp.valor as valordevolvido,
vdvp.descontodevolvido
from
devolucoesprodutos vdvp
left join vendas vd on(vd.codigo = vdvp.codvenda)
left join vendedores vdd on(vdd.codigo = vd.codvendedor)
left join devolucoes dv on(dv.codigo = vdvp.coddevolucao)

where datadevolucao between '01/12/2012' and '31/12/2012'

ele me traz a soma total das devolucoes de todo o período do vendedor

Dá pra fazer isso com window function (trazer o totalizador do periodo do
WHERE)?

ps: isso será uma view.
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Window function filtrado

2013-01-10 Thread Anselmo Silva
>
>
>>
> Cara, acho que você está confundindo, o PostgreSQL primeiro filtra (WHERE)
> depois executa a agregação (SUM), logo a soma deve ser do período
> selecionado ('01/12/2012' a '31/12/2012').
>
> foi o que entendi

> Fiz um teste mais simples pra confirmar...
> ...
>
> dentro deste teste e dum que fiz mais simples funcionou blz


> Qualquer coisa explica melhor o seu problema, com exemplos e o qual o
> resultado esperado...
>

Seguinte:
a tabela DEVOLUCOESPROD não tem o campo CODVENDEDOR,  tem o campo CODVENDA.
A data da devolução está na tabela DEVOLUCOES.
Então tenho de fazer uns join's para me trazer o vendedor da venda
por sua vez tenho de trazer o nome do vendedor tambem da tabela VENDEDORES.

simplificando preciso das seguintes colunas:

codvendedor, nomevendedor, valorproduto_dev,  valortotal_vendedor onde a
data da devolução seja um período;

ou seja VALORTOTAL_VENDEDOR deveria ser um
sum(DEVOLUCOESPROD.VALOR) over (partition by VENDA.CODVENDEDOR)

Parece que por conta deste partition ser da outra tabela, ao filtrar a data
da devolução com WHERE
ele traz o partition correto, mas, de todo o período, independente do where.

Espero ter clareado melhor:
Segue o select quase original (está simplificado para o caso)

SELECT PV.CODVENDEDOR,
VDD.NOME AS VENDEDOR,
SUM(VDVP.VALOR) OVER (PARTITION BY CODVENDEDOR) AS TOTAL_VENDEDOR,
VDVP.CODVENDA AS CODPREVENDA,
VDVP.CODDEVOLUCAO,
DV.DATADEVOLUCAO,
VDVP.CODPRODUTO,
VDVP.PRODUTO AS NOMEPRODUTO,
VDVP.QTDE,
VDVP.VALOR AS VALORDEVOLVIDO,
VDVP.DESCONTODEVOLVIDO
FROM
VDEVOLUCOESPROD VDVP
LEFT JOIN VENDAS PV ON(PV.CODIGO = VDVP.CODVENDA)
LEFT JOIN VENDEDORES VDD ON(VDD.CODIGO = PV.CODVENDEDOR)
LEFT JOIN DEVOLUCOES DV ON(DV.CODIGO = VDVP.CODDEVOLUCAO)



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


Re: [pgbr-geral] Window function filtrado

2013-01-10 Thread Anselmo Silva
Vou fazer um modelo de exemplo... vorto já


Em 10 de janeiro de 2013 11:52, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
> 2013/1/10 Anselmo Silva 
>
>>
>>>>
>>> Cara, acho que você está confundindo, o PostgreSQL primeiro filtra
>>> (WHERE) depois executa a agregação (SUM), logo a soma deve ser do período
>>> selecionado ('01/12/2012' a '31/12/2012').
>>>
>>> foi o que entendi
>>
>>> Fiz um teste mais simples pra confirmar...
>>> ...
>>>
>>> dentro deste teste e dum que fiz mais simples funcionou blz
>>
>>
>>> Qualquer coisa explica melhor o seu problema, com exemplos e o qual o
>>> resultado esperado...
>>>
>>
>> Seguinte:
>> a tabela DEVOLUCOESPROD não tem o campo CODVENDEDOR,  tem o campo
>> CODVENDA.
>> A data da devolução está na tabela DEVOLUCOES.
>> Então tenho de fazer uns join's para me trazer o vendedor da venda
>> por sua vez tenho de trazer o nome do vendedor tambem da tabela
>> VENDEDORES.
>>
>> simplificando preciso das seguintes colunas:
>>
>> codvendedor, nomevendedor, valorproduto_dev,  valortotal_vendedor onde a
>> data da devolução seja um período;
>>
>> ou seja VALORTOTAL_VENDEDOR deveria ser um
>> sum(DEVOLUCOESPROD.VALOR) over (partition by VENDA.CODVENDEDOR)
>>
>> Parece que por conta deste partition ser da outra tabela, ao filtrar a
>> data da devolução com WHERE
>> ele traz o partition correto, mas, de todo o período, independente do
>> where.
>>
>> Espero ter clareado melhor:
>> Segue o select quase original (está simplificado para o caso)
>>
>> SELECT PV.CODVENDEDOR,
>> VDD.NOME AS VENDEDOR,
>> SUM(VDVP.VALOR) OVER (PARTITION BY CODVENDEDOR) AS TOTAL_VENDEDOR,
>>  VDVP.CODVENDA AS CODPREVENDA,
>> VDVP.CODDEVOLUCAO,
>> DV.DATADEVOLUCAO,
>>  VDVP.CODPRODUTO,
>> VDVP.PRODUTO AS NOMEPRODUTO,
>> VDVP.QTDE,
>>  VDVP.VALOR AS VALORDEVOLVIDO,
>> VDVP.DESCONTODEVOLVIDO
>> FROM
>> VDEVOLUCOESPROD VDVP
>>  LEFT JOIN VENDAS PV ON(PV.CODIGO = VDVP.CODVENDA)
>> LEFT JOIN VENDEDORES VDD ON(VDD.CODIGO = PV.CODVENDEDOR)
>>  LEFT JOIN DEVOLUCOES DV ON(DV.CODIGO = VDVP.CODDEVOLUCAO)
>>
>>
>
> Pra mim ainda parece que isso deveria funcionar. Mas pode ser que eu não
> tenha compreendido direito o modelo.
>
> Tem como você mandar um EXPLAIN dessa consulta? E, se possível, montar um
> caso de teste, uma dica é usar o SQL Fiddle [1].
>
> [1] http://sqlfiddle.com/
>
> Atenciosamente,
> --
> Matheus de Oliveira
> Analista de Banco de Dados
> Dextra Sistemas - MPS.Br nível F!
> www.dextra.com.br/postgres
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] Window function filtrado

2013-01-10 Thread Anselmo Silva
>
>
 Pra mim ainda parece que isso deveria funcionar. Mas pode ser que eu
>> não tenha compreendido direito o modelo.
>>
>>
Sague anexo modelo simplificado, mas, que mostra o meu problema... Agradeço
desde já pela ajuda.
* Versão do postgres usada 9.0.8
-- 
Anselmo M. Silva


WindowFunction_filtered.sql
Description: Binary data
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Window function filtrado

2013-01-11 Thread Anselmo Silva
Obrigado Dickson... embora eu tinha conseguido deduzir isso hoje de
madrugada pensando no assunto após enviar o exemplo...
Resolvido!


Em 10 de janeiro de 2013 19:59, Dickson S. Guedes
escreveu:

> Em 10 de janeiro de 2013 20:31, Dickson S. Guedes
>  escreveu:
> > Em 10 de janeiro de 2013 17:26, Anselmo Silva 
> escreveu:
> >> Sague anexo modelo simplificado, mas, que mostra o meu problema...
> Agradeço
> >> desde já pela ajuda.
> >> * Versão do postgres usada 9.0.8
> >
> > Neste seu caso, primeiro a VIEW executa o SUM primeiro, a sua clausula
> > WHERE vai influenciar no resultado depois que a VIEW foi executada.
>
>
> Dei uma lida melhor nesta thread e apenas reforçando, se você cria a
> VIEW com o SUM ele vai executar primeiro o SUM e então retornará os
> resultados para serem filtrados pela sua cláusula WHERE pois esta não
> faz parte do código da VIEW, se você quer o comportamento do SUM
> apenas para os registros retornados no WHERE de sua consulta externa
> você deve fazer como já foi citado nesta thread por outros colegas, ou
> seja, utilizar o SUM nesta consulta e externa [1] e remover o SUM que
> está "dentro" da VIEW, já que ele não lhe traria o resultado esperado.
>
>
> [1] SELECT *, SUM( valordevolvido ) OVER (PARTITION BY vendedor )
>  FROM VDEVOLUCOESPROD_VENDEDOR
>  WHERE DATADEVOLUCAO BETWEEN '01/11/2012' AND '30/11/2012'
>
> []s
> --
> Dickson S. Guedes
> mail/xmpp: gue...@guedesoft.net - skype: guediz
> http://guedesoft.net - http://www.postgresql.org.br
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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


Re: [pgbr-geral] View com union - Muito lenta

2013-01-15 Thread Anselmo Silva
Já executou o Explain para ver qual o gargalo? poderia reproduzir a
estrutura de modo simplificado? somente informando a estrutura do "select"
não diz muita coisa para te ajudar
já que não sebemos a estrutura das tabelas.


Em 15 de janeiro de 2013 09:37, Flavio Yamil Gómez <
fla...@metavirtual.com.br> escreveu:

> Olá pessoal,
>
> Criei uma VIEW com três SELECTS usando o UNION.
>
> Quando executo um select na view, está demorando 5 segundos para retornar
> o resultado. Porém, executando os selects por separado, cada um demora 15ms
> em média.
>
> Detalhe: uma das tabelas contém 2,6 milhões de registros e possui os
> devidos índices criados.
> A instalação do postgres 9.1 é a padrão. Alguém poderia me dar alguma dica
> para melhorar esse desempenho?
>
> Outro detalhe importante:
>
> Ao chamar a consulta da view, quando comparo com um valor "colocado na
> mão" o retorno é instantâneo, porém quando comparo com um campo da tabela,
> daí demora. Vejam o código chamador:
>
> select com_oferta.nr_oferta
> from com_oferta
>
>  left join com_trafego on com_trafego.cd_oferta = com_oferta.cd_oferta
>  left join pro_produto on com_oferta.cd_produto = pro_produto.cd_produto
>  left join vw_loc_origem_destino2 on vw_loc_origem_destino2.cd_codigo =
> com_trafego.cd_origem_carga --> Este é o comando problemático.
> --> Se eu comparar com um valor explícito, funciona rápido (= 3 por
> exemplo).
>
> where
>  com_oferta.cd_produto = 1
>
>
>
>
>
> Segue código da view:
>
> CREATE OR REPLACE VIEW bs_dvm.vw_loc_origem_destino2 AS
>
> ( SELECT loc_cidade.cd_cidade AS cd_codigo,
>loc_cidade.nm_cidade::text as nm_nome,
>loc_cidade.cd_pais, loc_cidade.cd_regiao, 3 AS
> tp_tipo
> FROM bs_dvm.loc_cidade
> LEFT JOIN bs_dvm.loc_regiao ON loc_cidade.cd_regiao =
> loc_regiao.cd_regiao
> LEFT JOIN bs_dvm.loc_pais ON loc_cidade.cd_pais =
> loc_pais.cd_pais
>
> UNION
>
> SELECT loc_porto.cd_porto AS cd_codigo,
>loc_porto.nm_porto::text AS nm_nome,
>loc_porto.cd_pais, 0 AS cd_regiao, 2 AS tp_tipo
> FROM bs_dvm.loc_porto
> );
>
> ALTER TABLE bs_dvm.vw_loc_origem_destino
>   OWNER TO postgres;
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


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


Re: [pgbr-geral] TRIGGER a disparar só com base num atributo

2013-01-17 Thread Anselmo Silva
> Alguém sabe se é possível implementar um trigger que dispara com um
> UPDATE mas só num determinado campo?
>
> versão do postgresql: 9.1.4
>
> na trigger coloque UPDATE OF [COLUNA]  (irá disparar apenas se for
atualizado essa coluna)

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


Re: [pgbr-geral] TRIGGER a disparar só com base num atributo

2013-01-17 Thread Anselmo Silva
>
>
> E se forem várias colunas?Devo separar por virgulas?
>
> Isso mesmo... Na documentação tem tudo isso e mais um pouco!

http://www.postgresql.org/docs/devel/static/sql-createtrigger.html

-- 
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] Nível de Log adequado

2013-03-26 Thread Anselmo Silva
Olá Pessoal, tenho me batido quanto a saber qual o nível de log melhor para
desenvolvimento.

Ainda não encontrei documentação bem detalhada sobre o que cada parâmetro
'loga': client_min_messages, log_min_messages, log_min_error_statement;

Ex: tenho algumas funções SQL e gostaria de ver o select feito com os
parâmetros desta carregados que foi enviado no momento da chamada a esta.
Qual nível usar?

Grato desde já

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


Re: [pgbr-geral] Nível de Log adequado

2013-04-09 Thread Anselmo Silva
Resposta meio atrasada, mas, vamo lá...

Danilo Silva

> logging_collector = on
> log_filename = 'postgresql-%Y-%m-%d.log'
> log_statement = 'all'
>


*Juliano Atanazio:*

> Se quiser logar TODOS statements:
>
> log_min_duration_statement = 0
>
>
>>
>>  Nenhuma destas opções resolve a minha necessidade no momento:
- Tenho algumas funções SQL e gostaria de ver o SELECT feito com os
parâmetros desta carregados que foi enviado no momento da chamada a esta.

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


Re: [pgbr-geral] Nível de Log adequado

2013-04-09 Thread Anselmo Silva
>
> Então coloque o log em modo debug5, na GUC log_min_messages
> Alternativamente, acho melhor até, coloque alguns RAISE NOTICE na sua
> função, passando as variáveis. Aí cairá no log como NOTICE.
>

Já estão como debug5 e não mostra...
quanto a segunda sugestão: eu teria que converter a função SQL em plpgsql,
não é?

Obrigado, se não houver outro jeito vou fazer isso.
-- 
Anselmo M. Silva
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Nível de Log adequado

2013-04-09 Thread Anselmo Silva
> Talvez vc esteja utilizando /bind variables/ do lado do cliente e por isso
> está enxergando "?" ao invés do valor?
>
>
Não. Estou Chamando a função SQL dinamicamente por meio de outra função
plpgsql usando os parâmetros que esta primeira função manda.
Como está dando erro, gostaria de saber qual parâmetros a primeira função
mandou.

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


Re: [pgbr-geral] Nível de Log adequado

2013-04-09 Thread Anselmo Silva
> Ah! Os Deuses do procedimento armazenado já passaram por este problema e
> portanto desenvolveram esse cara[1] que pode ser seu amigo.
>
> [1] http://www.pgadmin.org/docs/1.8/debugger.html
>
> Já tentou?
>

Não tentei.  Qual procedimento para instalar em ambiente windows (se
houver)?.

Obrigado.


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


Re: [pgbr-geral] Nível de Log adequado

2013-04-09 Thread Anselmo Silva
> ... sinto muito mas não tenho capacidade técnica sequer para te dar o
> "caminho-das-pedras"  de como fazer isto naquela plataforma.
>

Obrigado mesmo assim Leonardo... se houver alguém com esta  "capacidade
técnica" por aí, seria muito grato

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


  1   2   >