Re: [pgbr-geral] Indicar o Indíce

2008-03-13 Por tôpico Osvaldo Rosario Kussama
[EMAIL PROTECTED] escreveu:
 Meio milhão de registros :D
 Ou seja o otimizador tá louco ou eu
 2008/3/13, [EMAIL PROTECTED] [EMAIL PROTECTED]:
  tbl_lista_basica tem o campo produto em que está indexado e tem a
 foreign
  key com a tabela tbl_produto, mas quando eu dou um join entre eles faz
 por
  seq scan?
 Se o volume de dados for pequeno, normal.

 Há muito mais entre o otimizador e o plano de execução do que imagina
 vossa vã filosofia...



Coloque aqui o EXPLAIN ANALYZE de sua consulta.

No PostgreSQL você não especifica qual índice usar, isto fica a cargo 
do planejador/otimizadorr.

Osvaldo
___
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 no pg_dump

2008-03-11 Por tôpico Osvaldo Rosario Kussama
Marcelo escreveu:
 
 - Estou usando o pgAdmin III - Query, quando quero gerar um backup 
 através da  linha de código(abaixo)  da erro...?
 
 pg_dump  Meu_BancoBkp_Meu_Banco.sql
 
 ERROR: syntax error at or near pg_dump
 Estado de SQL:42601
 Carácter:1
 


O pg_dump é um utilitário assim como o pgAdmin.
Execute-o na linha de comando.
Na opção PgAdmin - Query você pode colocar apenas uma expressão SQL.

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


Re: [pgbr-geral] Data estranha

2008-03-10 Por tôpico Osvaldo Rosario Kussama
Thiago Boufleuhr escreveu:
 Uhm, acho que posso isolar o postgres como sendo o problema?
 
 
 Roberto Mello escreveu:
 2008/3/10 Thiago Boufleuhr [EMAIL PROTECTED]:
   
 Pessoal,

 Aconteceu uma situação estranha, após analisar erros na replicação
  de nossa aplicação, fui procurar a origem e constatei que existiam datas
  com um formato do tipo '0008-04-04 BC'. Não sei como aconteceu isso,
  acredito que foi após realizar um VACUUM. Alguem sabe por que isso 
 acontece?
 
 É como o Leandro disse. VACUUM não tem nada a ver com isso.

 Roberto


Você não disse como está fazendo a replicação mas, em todo caso, 
verifique se a forma de interpretar as datas é a mesma nas duas 
máquinas (datestyle no postgresql.conf ou a especificada no 
comando SET).

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


Re: [pgbr-geral] PostgreSQL e Codificações

2008-03-07 Por tôpico Osvaldo Rosario Kussama
Roberto Mello escreveu:
 Gente,
 
 Numa conversa no #postgresql me foi dada permissão para publicar uma
 apresentação sobre PostgreSQL e Codificações.
 
 Dadas as discussões recentes sobre o assunto, creio que isso seja bem
 relevante, e espero que ajude a tirar as dúvidas dos membros da lista.
 
 http://blog.divisiblebyfour.org/2008/03/postgresql-e-codificaes-postgresql-and.html
 
 Roberto


A título de informação: o artigo do Joel Spolsky está traduzido 
para o português em:
http://local.joelonsoftware.com/mediawiki/index.php/O_M%C3%ADnimo_Absoluto_Que_Todo_Desenvolvedor_de_Software_Absolutamente%2C_Positivamente_Precisa_Saber_Sobre_Unicode_e_Conjuntos_de_Caracteres_%28Sem_Desculpas%21%29

Osvaldo

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


Re: [pgbr-geral] Passar para o PostgreSQL um identificador do Cliente?

2008-03-07 Por tôpico Osvaldo Rosario Kussama
Valter Lobo - Imaginary Software System escreveu:
  
   Queria passar para o  PostgreSQL um identificador do meu usuario.
  Tenho um  Pool de Conexão ( 10 conexões com o messmo login e usuario) ,
  por isto quero passar um identificador para o Banco identificando o 
 usuario que esta executando a operação.
 


Verifique se atende:
Utilize custom_variable_classes descrita em Customized Options:
http://www.postgresql.org/docs/8.3/interactive/runtime-config-custom.html

e para utilizar o identificador/valor veja as funções:
http://www.postgresql.org/docs/8.3/interactive/functions-admin.html

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


Re: [pgbr-geral] Como configurar o PostgreSQL 8.3 para pt_BR?

2008-03-05 Por tôpico Osvaldo Rosario Kussama
Leandro DUTRA escreveu:
 2008/3/5, Ribamar Sousa [EMAIL PROTECTED]:
  Quando eu crio um cluster com encoding latin1 também posso criar banco
  com utf8, mas se tenho um cluster em utf8 não posso criar banco com
  latin1.
 
 Interessante, isso está documentado?
 

http://www.postgresql.org/docs/8.3/interactive/multibyte.html

An important restriction, however, is that each database 
character set must be compatible with the server's LC_CTYPE 
setting. When LC_CTYPE is C or POSIX, any character set is 
allowed, but for other settings of LC_CTYPE there is only one 
character set that will work correctly. Since the LC_CTYPE 
setting is frozen by initdb, the apparent flexibility to use 
different encodings in different databases of a cluster is more 
theoretical than real, except when you select C or POSIX locale 
(thus disabling any real locale awareness). It is likely that 
these mechanisms will be revisited in future versions of PostgreSQL.

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


Re: [pgbr-geral] Bug 8.3 ??

2008-03-04 Por tôpico Osvaldo Rosario Kussama
Vinicius Santos - MSI escreveu:
 Pessoal, aquele bug relation with OID ## does not exist, usando 
 versões menores que 8.3, não tem solução mesmo ??
 Somente usando a versão 8.3 ?
  


Aquele que consta da FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html#item4.19

Se for a solução, como é dito na FAQ, é usar EXECUTE.

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


Re: [pgbr-geral] Atualizar postgres

2008-03-04 Por tôpico Osvaldo Rosario Kussama
Leandro Ferreira escreveu:
 
 Preciso importar varios banco de dados que estão em uma máquina com 
 PostgreSQL 7.2 on i386-unknown-freebsd4.7 para PostgreSQL 8.3.0 on 
 i386-portbld-freebsd7.0.
 Vi pelo manual do postgres a opção pg_dumpall que consigo fazer um 
 backup de todas as estruturas do banco se não estou enganado.
 Estou tendo problemas quanto a essa importação, pelos usuário que há no 
 banco etc.
 
 Qual a melhor maneira para eu fazer um espelho deste banco..
 


A dupla pg_dumpall / psql é a indicada para esta tarefa.

Quais os problemas que você está encontrando?

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


Re: [pgbr-geral] 2 questões de iniciante no PostgreS QL e delphi.

2008-03-03 Por tôpico Osvaldo Rosario Kussama
Fellipe Henrique escreveu:
 Olá amigos, estou pensando em iniciar um projeto com postgreSQL, e pelo 
 que andei lendo, acho não vou me arrepender.. porém tenho algumas 
 dúvidas, seguem elas:
 
 1) Qual a melhor conexão de dados entre o Delphi e o PostgreSQL?

Não utilizo delphi mas dentre as opções gratuitas a mais citada 
na lista é o ZEOS.


 2) Porque no meu SQL tenho que por o nome da tabela entre aspas duplas? 
 É que andei vendo uns tutoriais na internet, e em nenhum deles o nome da 
 tabela e campos, aparecem entre aspas duplas, eles escrevem normalmente.

Questão 4.21 da FAQ:
http://www.postgresql.org/docs/faqs.FAQ_brazilian.html#item4.21

Mais detalhes na documentação:
http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
Particularmente o último parágrafo do item 4.1.1. Identifiers and 
Key Words
ou, em português,
http://pgdocptbr.sourceforge.net/pg80/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS


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


Re: [pgbr-geral] Estrutura do PostgreSql no Linux CentOS 4

2008-02-29 Por tôpico Osvaldo Rosario Kussama
Newton Teixeira do Nascimento Júnior escreveu:
 Obrigado pela atenção Roberto. Gostaria de saber onde posso encontrar 
 uma documentação em português (mas pode ser em ingles) sobre psql.

Se por psql você quer dizer o terminal interativo do PostgreSQL 
então a documentação tem um capítulo especial sobre ele:
http://pgdocptbr.sourceforge.net/pg80/app-psql.html
ou específico para a versão 8.1 (mas em inglês):
http://www.postgresql.org/docs/8.1/interactive/app-psql.html


 
 E onde na documentação oficial (capitulo ou pagina fala sobre a 
 estrutura do postgresql no linux - genericamente)?

Talvez esta parte da documentação te atenda:
http://pgdocptbr.sourceforge.net/pg80/internals.html

Veja também:
http://www.postgresql.org/docs/

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


Re: [pgbr-geral] PROBLEMA URGENTE POSTGRESQL ULT. VE RSÃO

2008-02-29 Por tôpico Osvaldo Rosario Kussama
Erlon - Forsell escreveu:
 aqui em casa eu só atualizei o postgresql pro 8.3 (tinha errado a versão)
 mas no clinete instalei do zero, e funções como:
 update proped set ipi=aux_ncm.ipi where proped.classfiscal=aux_ncm.cf 
 and proped.codpro=produtos.codigo and produtos.revenda = false and 
 proped.numero=111;
  
 deixaram de funcionar, todas necessitam ser via join e parte das views 
 que eram assim não importou como era,, há o que fazer?


Tente se explicar melhor pois não deu para entender o problema.
Está funcionando em sua instalação mas não instalação do cliente 
(ambos 8.3)?

O ùltimo parágrafo está incompreensível.

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


Re: [pgbr-geral] Exportar tabela pa txt

2008-02-29 Por tôpico Osvaldo Rosario Kussama
Silfar Goulart de Castro escreveu:
 Não eu não quero usar o EMS pra isso, eu quero fazer uma procedure que 
 eu possa executar de qualquer lugar, quero usar o ems só pra executar o 
 comando de teste.
 
 Pensei que fosse simples, eu quero usar o comando copy e dizer onde ele 
 deve gravar o txt.
 


Quando você executa um comando COPY este comando é executado no 
*servidor* mesmo que tenha sido emitido em uma estação. Assim 
quando você coloca 'c:\temp\arq.txt' em seu comando o PostgreSQL 
considera o HD do servidor e não o de sua estação.
Tente especificar a localização do arquivo do ponto de vista do 
servidor.

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


Re: [pgbr-geral] Migrando da Versao 7.3 para 8.2

2008-02-28 Por tôpico Osvaldo Rosario Kussama
sergio escreveu:
 
 Estou migrando minha base e estou com um problema nas funções escritas em 
 plpgsql.
 Em uma das funções eu tenho uma comparação do tipo variavel_date0, para 
 verificar se a variavel data carrega algum valor, mas agora na versão 8.2 me 
 retorna um erro dizendo que operação não existe dateinteger.
 
 Isso depende de alguma configuração ou tenho que reescrever. Não tenho nem 
 idéia onde posso tirar algum alento.
 


Mas o que significa variavel_date0?
Você pretende que o 0 represente uma data? Por acaso pensa em 
00/00/ (dia/mês/ano)?
Mas não existe dia 00 e tampouco mês 00...

Se sua variável não carrega valor provavelmente seu conteúdo é 
NULL e, portanto, você deve utilizar variavel_date IS NULL.

Creio que é melhor você reescrever sua função.

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


Re: [pgbr-geral] Como gerar um Dump de todo o banco a exceção dos dados de algumas tabelas?

2008-02-27 Por tôpico Osvaldo Rosario Kussama
Christian Almeida escreveu:
 corta
 O meu problema não é tamanho do banco de dados, mas sim o tamanho do 
 /dump/. O que ocorre é que muitos clientes acabam relaxando com o 
 backup devido ao tempo gasto para efetua-lo e ao espaço necessário para 
 armazena-lo. Tempo e espaço estes que estão diretamente ligados ao 
 tamanho do arquivo de dump gerado. Analisando os dados, concluímos que 
 na maioria dos clientes, aproximadamente 40% do /dump/ é de tabelas de 
 logs. Se o cliente perde o banco (HD pifa, etc...), o que é muito 
 raro, ele está disposto a aceitar que os logs nao sejam restaurados, 
 desde que todo o restante o seja.  
 
 corta  

 Mais uma vez, o problema não é restaurar, mas sim gerar o /dump./ Neste 
 caso ao gerar o dump conforme descrito eu estaria colocando nele todos 
 os dados, e continuaria do mesmo tamanho, isto é, enorme.
  
 É saudável discutir a problema tentando entender o cenário em que está 
 inserido. Muitas vezes, há problemas que tem sua solução em outros 
 contextos. *Mas no meu caso, o problema é _gerar um dump menor_.* A 
 única saída que vejo para isto é retirar dados de dentro dele. Por isto 
 desejaria saber se há possibilidade de gerar de acordo com o descrito no 
 primeiro post. Contudo, caso conheçam outra solução, fiquem à vontade 
 para compartilha-la conosco.
  


Avalie a possibilidade de utilizar:
- pg_dumpall com a opção --schema-only
seguido de:
- pg_dump com as opções --data-only e --exclude-table=table (ou 
--table=table)


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


Re: [pgbr-geral] Como gerar um Dump de todo o banco a exceção dos dados de algumas tabelas?

2008-02-27 Por tôpico Osvaldo Rosario Kussama
Christian Almeida escreveu:
 
 2008/2/27 Osvaldo Rosario Kussama [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED]:
 
 Avalie a possibilidade de utilizar:
 - pg_dumpall com a opção --schema-only
 seguido de:
 - pg_dump com as opções --data-only e --exclude-table=table (ou
 --table=table)
 
  
 Lendo a documentação do pg_dump, ví as opções --schema-only e 
 --data-only e pensei em uma solução deste tipo. Seriam 2 dumps, um com o 
 schema e outro com o dados. A idéia inicial era ter tudo em um único 
 arquivo de dump, e por isto a pergunta. Mas, em todo caso, não havendo 
 outras opção podemos contornar isto gerando um zip com ambos arquivos 
 dentro. 
  
 Contudo, tenho que verificar se esta segunda opção do pg_dump 
 funciona da forma prevista. Caso positivo, creio termos encontrado a 
 solução.
  


Não testei mas creio que utilizando a opção plain-text é possível 
concatenar os dois dumps e compactar o arquivo resultante.

A recuperação seria feita com o psql utilizando o arquivo 
descompactado.

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


Re: [pgbr-geral] LOG DAS QUERYS

2008-02-27 Por tôpico Osvaldo Rosario Kussama
jota.comm escreveu:
 
 Depende de como o seu postgresql.conf sessão de log está configurado.
 
 2008/2/27, junior Prado [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED]:
 
 Gostaria de saber as querys executadas num determinado dia. Existe
 algum log padrão do postgres, ou possibilidade de habilitar o log?
 


Depois de configurar a geração dos logs talvez você considere 
interessante utilizar o pgFouine para analisar os resultados.

http://pgfouine.projects.postgresql.org/

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


Re: [pgbr-geral] Instalar no Windows

2008-02-27 Por tôpico Osvaldo Rosario Kussama
sergio escreveu:
 Tirei fora o McAfee e funcionou.
 De momento vou deixar assim, pois preciso testar outras coisas.
 


Veja o item 3.1 da FAQ
http://www.postgresql.org/docs/faqs.FAQ_windows.html#3.1

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


Re: [pgbr-geral] Driver Npgsql

2008-02-25 Por tôpico Osvaldo Rosario Kussama
Rafael Sousa escreveu:
  
 Alguem sabe dizer se já existe o driver Npgsql para o postgresql 8.3 ou 
 o driver do 8.2 é compativel, pois quando eu uso o driver do 8.2 dá esse 
 erro na minha aplicação.
 Essa mesma aplicação acessando o banco 8.2 não da erro.
  
 
 
 /ERROR: 42883: operator does not exist: text = integer/
 



Veja as Release Notes da versão 8.3 em:
http://www.postgresql.org/docs/8.3/interactive/release-8-3.html
particularmente o primeiro item de E.1.2.1. General:
Non-character data types are no longer automatically cast to TEXT

Você precisa fazer cast explícito.

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


Re: [pgbr-geral] Suporte Pl/Pgsql.

2008-02-25 Por tôpico Osvaldo Rosario Kussama
Alan Pablo escreveu:
 
 Alguém poderia me auxiliar como adicionar a linguagem plpgsql no 
 postgresql-7.4.14 instalado via apt-get install postgresql.
 
 Nesse tipo de instalação na vem a tabela pg_language.
 
  psql -c create language plpgsql -d template1
 
 ERROR:  syntax error at end of input at character 24
 
 Na instalação pelo código fonte ocorreu tudo normal - psql -c create 
 language plpgsql -d template1
 
  psql -c select * from pg_pltemplate -d template1
 
  tmplname  | tmpltrusted |  tmplhandler  |   tmplvalidator   |   
 tmpllibrary| tmplacl
 
 ---+-+---+---+--+-
 
  plpgsql | t   | plpgsql_call_handler  | 
 plpgsql_validator | $libdir/plpgsql  |
 
  pltcl   | t   | pltcl_call_handler
 |   | $libdir/pltcl|
 
  pltclu| f   | pltclu_call_handler   
 |   | $libdir/pltcl|
 
  plperl   | t   | plperl_call_handler   | 
 plperl_validator  | $libdir/plperl   |
 
  plperlu| f   | plperl_call_handler   | 
 plperl_validator  | $libdir/plperl   |
 
  plpythonu | f   | plpython_call_handler |   | 
 $libdir/plpython |
 
 (6 rows)
 
 Qual sugestão é bem vinda! ;)
 


Veja:
http://www.postgresql.org/docs/7.4/interactive/xplang.html

Osvaldo
PS. A versão 7.4.14 é bem antiga. Se não puder atualizar para a 
8.3 atualize pelo menos para a 7.4.19.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Utilizando initcap() com campos acentuados

2008-02-20 Por tôpico Osvaldo Rosario Kussama
César escreveu:
 
 Procurei bastante sobre o uso do initcap() com campos acentuados.
 
 Porém, não achei a resposta que resolvesse meu problema.
 
 Utilizo uma base com a codificação UTF-8, e tenho uma tabela chamada 
 instituicoes que possui o atributo nome. Todos estes nomes estão 
 corretamente acentuados, e em letras maiúsculas.
 Gostaria de passar todos para initcap, porém quando faço:
 UPDATE instituicoes SET nome = initcap(nome);
 os campos que possuem acentos são simplesmente apagados, deixando uma 
 string vazia como resultado. Achei estranho isto, pois na maioria dos 
 casos que pesquisei, o que ocorria era passar a maiúscula o caracter 
 posterios a letra acentuada. Mas no meu caso não, o campo foi 
 simplesmente apagado.
 
 Agora pergunto, como fazer para passar a initcap campos acentuados, sem 
 acontecer isto?
 


Veja o resultado de:
SHOW LC_CTYPE;
é o esperado? compatível com seu encoding?

Osvaldo
___
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 acentuação

2008-02-20 Por tôpico Osvaldo Rosario Kussama
Saulo escreveu:
 Bom dia amigos. Meu banco está configurado com encoding = ‘latin1’
 
 Qdo insiro um dado pelo pgadmin com acento funciona normal
 
 Pordem qdo insiro pelo windows (via odbc) da erro.
 
 E ainda me retorna um erro “... seqüência de bytes UTF8 ...”, e nem 
 estou usando esta codificação.
 


Configure corretamente o parâmetro client_encoding no 
postgresql.conf ou através de um comando SET em sua aplicação.

Osvaldo
___
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: Problemas com acentuaçã o

2008-02-20 Por tôpico Osvaldo Rosario Kussama
Saulo escreveu:
 Osvaldo, já configurei no postgresql.conf tbm
 Outra sugestão?
 Meu pg é 8.2
 
 -Mensagem original-
 De: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] Em nome de Osvaldo
 Rosario Kussama
 Enviada em: quarta-feira, 20 de fevereiro de 2008 17:34
 Para: Comunidade PostgreSQL Brasileira
 Assunto: Re: [pgbr-geral] Problemas com acentuação
 
 Saulo escreveu:
 Bom dia amigos. Meu banco está configurado com encoding = ‘latin1’

 Qdo insiro um dado pelo pgadmin com acento funciona normal

 Pordem qdo insiro pelo windows (via odbc) da erro.

 E ainda me retorna um erro “... seqüência de bytes UTF8 ...”, e nem 
 estou usando esta codificação.

 
 
 Configure corretamente o parâmetro client_encoding no 
 postgresql.conf ou através de um comando SET em sua aplicação.
 


Mas o seu cliente está enviando os dados codificados em Latin1 ou 
em UTF-8?

Se cada cliente utiliza uma codificação utilize o SET 
client_encoding adequado em cada um deles.

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


Re: [pgbr-geral] Dbvisualizer

2008-02-18 Por tôpico Osvaldo Rosario Kussama
Rafael Sousa escreveu:
  
 Alguém tem o crack ou serial do Dbvisualizer?
  


Nesta lista não se defende, e muito menos se concorda com, a 
PIRATARIA.

Em muitas listas uma mensagem como a acima é motivo para o 
banimento do solicitante.

Com a palavra os administradores da pgbr-geral.

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

2008-02-18 Por tôpico Osvaldo Rosario Kussama
Andrea Santos escreveu:
 A minha tabela se chama USUARIO.
 
 O caminho do path está configurado corretamento, tanto que ele consegue 
 fazer o select, porém só faz se eu coloco o nome da tabela entre 
 
 String sqk = SELECT * FROM /USUARIO/ 
 
 
 O que então poderia estar errado ? Existe alguma restrição com o nome da 
 tabela estar em maiusculo?
 


Do manual do PostgreSQL em:
http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
veja particularmente o parágrafo final:

Identifier and key word names are case insensitive. Therefore:

UPDATE MY_TABLE SET A = 5;

can equivalently be written as:

uPDaTE my_TabLE SeT a = 5;

A convention often used is to write key words in upper case and 
names in lower case, e.g.:

UPDATE my_table SET a = 5;

There is a second kind of identifier: the delimited identifier or 
quoted identifier. It is formed by enclosing an arbitrary 
sequence of characters in double-quotes (). A delimited 
identifier is always an identifier, never a key word. So select 
could be used to refer to a column or table named select, 
whereas an unquoted select would be taken as a key word and would 
therefore provoke a parse error when used where a table or column 
name is expected. The example can be written with quoted 
identifiers like this:

UPDATE my_table SET a = 5;

Quoted identifiers can contain any character, except the 
character with code zero. (To include a double quote, write two 
double quotes.) This allows constructing table or column names 
that would otherwise not be possible, such as ones containing 
spaces or ampersands. The length limitation still applies.

Quoting an identifier also makes it case-sensitive, whereas 
unquoted names are always folded to lower case. For example, the 
identifiers FOO, foo, and foo are considered the same by 
PostgreSQL, but Foo and FOO are different from these three 
and each other. (The folding of unquoted names to lower case in 
PostgreSQL is incompatible with the SQL standard, which says that 
unquoted names should be folded to upper case. Thus, foo should 
be equivalent to FOO not foo according to the standard. If 
you want to write portable applications you are advised to always 
quote a particular name or never quote it.)

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


Re: [pgbr-geral] Acesso ao banco remotamente

2008-02-12 Por tôpico Osvaldo Rosario Kussama
Bruno Moreno escreveu:
 Bem, primeiramente segue parte do meu arquivo pg_hba.conf:
 
 # IPv4 local connections:
 hostall all 127.0.0.1/32 
 http://127.0.0.1/32  md5
 # IPv6 local connections:
 #hostall all ::1/128   md5
 
 #
 # TYPE  DATABASEUSERCIDR-ADDRESS  METHOD
 hostbeerdb   all all   md5

Existe um erro na especificação acima:
. tipo de conexão: host
. nome do banco de dados: beerdb
. nome de usuário: all
. faixa de endereços de IP de cliente (CIDR-ADDRESS): all = ERRO
   == se desejar qualquer endereço especifique: 0.0.0.0/0, mas
   o melhor seria restringir apenas para sua rede, por ex.:
   192.168.10.0/24 para todos os hosts 192.168.10.xxx
. método de autenticação: md5

 
 Evandro, usei o comando telnet localmente, para a porta 5432, e deu beleza!
 
 Irei dar uma olhada no historico da lista!
 
 

Osvaldo
___
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 Zeos

2008-02-11 Por tôpico Osvaldo Rosario Kussama
Evandro Ricardo Silvestre escreveu:
... corta
 Não é possivel fazer exclusão através de uma View. Pense bem, se uma 
 view tiver 10 tabelas relacionadas, de qual tabela será excluida?
 Faça o teste pelo pgAdmin, DELETE FROM view;
 Nenhum componente dará suporte a esse tipo de situação. Se existir 
 algum, me apresenta que ficarei feliz em conhecer.
 


É possível contornar utilizando regras (rules).
Veja O sistema de regras em:
http://pgdocptbr.sourceforge.net/pg80/rules.html
particularmente Regras para INSERT, UPDATE e DELETE em:
http://pgdocptbr.sourceforge.net/pg80/rules-update.html

Veja também o artigo Updateable views em:
http://www.varlena.com/GeneralBits/82.php

Osvaldo
___
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 - PONTOS POSITIVOS DE POSTGRES EM RELAÇÃO AO ORACLE

2008-01-30 Por tôpico Osvaldo Rosario Kussama
junior Prado escreveu:
 
 Na minha empresa estão pensando em Oracle... Preciso de argumentos 
 válidos para defender o postgres...
 Saber que um é pago e o outro é livre... todos nós sabemos...
 Preciso da ajuda de todos...
 


Veja estes dois artigos do Fabio Telles:
http://www.midstorm.org/~telles/2007/08/30/coisas-do-postgresql-que-fazem-falta-no-oracle/
http://www.midstorm.org/~telles/2007/08/30/16-caracteristicas-do-oracle-que-fazem-falta-no-postgresql/

Deste artigo creio que você não tirará conclusões sobre a 
superioridade de um ou de outro:
http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

Veja também:
http://sql-info.de/postgresql/postgres-gotchas.html
infelizmente não tem para o Oracle.

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


Re: [pgbr-geral] desativar indice

2008-01-30 Por tôpico Osvaldo Rosario Kussama
Heloisa Fernanda escreveu:
 
 Tem como desativer indice temporariamente?
 


Utilize o comando DROP INDEX e quando quiser recriar CREATE INDEX.

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


Re: [pgbr-geral] Instalação portable em windows

2008-01-28 Por tôpico Osvaldo Rosario Kussama
Eduardo Nakamatu escreveu:
 
 Trabalho administrando cursos de programação no ERP da Microsiga e estou 
 montando uma instalação padrão para estes cursos. Nesta instalação ja 
 tenho minha aplicação e outras ferramentas, faltando apenas um servidor 
 de banco de dados. Pretendo utilizar o pg, cabe entao uma duvida.
 
 É possivel utilizar o pg como portable, a ideiaé ter um diretório que 
 pode ser copiado de um computador para outro, bastando ter um atalho 
 para ativar o serviço do pg.
 


Verifique se o Pg_live ajuda:
http://www.nycbug.org/index.php?NAV=Library;SUBM=10101

Pg_live is an enhanced adaptation of the Ubuntu family of 
distributions (linux) known as Xubuntu. It has been designed and 
optimized expressly for the PostgreSQL Database administrator and 
enthusiast. Pg_live has extensive reference and how-to 
documentation. It boasts a postgres, SSH and a PHP enabled webserver.

Whether you`re new to databases, curious about PostgreSQL or 
you`re an active member of the PostgreSQL community, you`ll find 
this Live CD extremely usefull as a learning environment and 
testing platform.

Pg_live is licensed under the Artistic License thus recognizing 
and respecting all included software, documentation and 
source-code under their original licenses.

Osvaldo

___
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

2008-01-25 Por tôpico Osvaldo Rosario Kussama
Silfar Goulart de Castro escreveu:
 Pessoal alguem pode me esclarecer sobre enconding, tem:
 
 LATIN1 = ISO-8859-1
 SQL_ASCII = ASCII
 UNICODE = UFT-8
 WIN1252 = Windows CP1252
 
 Qual deles usar, acho que é melhor  usar o utf8 né, neste caso como eu 
 converto um banco de win1252 para unicode?



Veja esta thread:
http://www.nabble.com/encoding-to9394266.html#a9400650

e também:
http://en.wikipedia.org/wiki/Windows-1252

O linux tem o utilitário de conversão iconv. Se estiver 
utilizando MS-Windows não posso lhe ajudar.

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


Re: [pgbr-geral] operador armazenado na variaval

2008-01-25 Por tôpico Osvaldo Rosario Kussama
Heloisa Fernanda escreveu:
 
 Estou precisando resolver a seguinte questão:
 
 CREATE OR REPLACE FUNCTION teste_regra()
   RETURNS void AS
 $BODY$
 DECLARE
 valor1   integer=2;
 valor2   integer=3;
 testevarchar='='; -- como usar o operador armazenado na 
 variavel
 BEGIN

 IF valor1 teste valor2 THEN
 
 RAISE NOTICE 'verdadeiro';
 
 ELSE
 
 RAISE NOTICE 'falso';
 END IF;
 
 END;
 $BODY$
   LANGUAGE 'plpgsql' VOLATILE;
 


Veja se atende:

CREATE OR REPLACE FUNCTION teste_regra() RETURNS void AS
$BODY$
DECLARE
valor1   integer=2;
valor2   integer=3;
testevarchar='=';
result   boolean;
BEGIN

EXECUTE 'SELECT ' || valor1 || ' ' || teste || ' ' || valor2 || 
';' INTO result;
IF result THEN
RAISE NOTICE 'verdadeiro';
ELSE
RAISE NOTICE 'falso';
END IF;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

Osvaldo
___
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_ESTRANHO

2008-01-24 Por tôpico Osvaldo Rosario Kussama
Marcelo escreveu:
 
 karos amigos preciso de uma ajuda de vc ..
 tenho instalado pgAdmin III no winXP e preciso exportar o banco que esta 
 na minha maquina para outra, o detalhe que quando gera o backup no  
 lugar o inser into aparece copy  , outro erro eh esse abaixo:

O padrão do pg_dump/pg_dumpall é gerar comandos COPY (o restore 
será mais rápido). Se você deseja que sejam gerados comandos 
INSERT utilize o parâmetro -d (ou --inserts). Veja:
http://www.postgresql.org/docs/8.2/interactive/app-pgdump.html

Aproveite e veja também os parâmetros -D (--column-inserts ou 
--attribute-inserts), pode ser que lhe interessem.


 
 
 ERROR: character 0xc692 of encoding UTF8 has no equivalent in LATIN1
 Estado de SQL:22P05
 


O UTF-8 é um conjunto de caracteres multibyte (1 a 4 bytes) e o 
LATIN-1 (ISO 8859-1) é um conjunto de caracteres monobyte, logo 
nem todos os caracteres existentes no UTF-8 tem correspondente no 
LATIN-1.
Veja:
http://en.wikipedia.org/wiki/Utf-8
http://en.wikipedia.org/wiki/Latin-1

Sugestão: altere o encoding do banco destino para UTF-8 ou edite 
o arquivo gerado pelo pg_dump/pg_dumpall e troque/elimine o 
referido caracter.

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


Re: [pgbr-geral] Comparação de desempenho

2008-01-24 Por tôpico Osvaldo Rosario Kussama
Wiliam Balan escreveu:
 Alguem sabe se tem como fazer um select desprezando os indices, por exemplo:
 
 - Tenho uma tabela com indices, mas gostaria de comparar o desempenho do 
 select com e sem indices, atraves do explain, será que é possivel? É que 
 preciso saber quantos % o emprego do indice vai melhorar a consulta. Valeu
 


Veja:
http://www.postgresql.org/docs/8.2/interactive/runtime-config-query.html

Osvaldo

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


Re: [pgbr-geral] Procedure com array

2008-01-23 Por tôpico Osvaldo Rosario Kussama
Leonardo Cezar escreveu:
 On Jan 22, 2008 10:17 AM, Osvaldo Rosario Kussama
 [EMAIL PROTECTED] wrote:
 Silfar Goulart de Castro escreveu:
 
  if SUBSTR(TRANS[i],3,3) = 'TIT' then
 execute PROCESSA_TITULAR(TRANS[i]);
 O que você deseja fazer com a linha acima?
 Veja em:
 http://www.postgresql.org/docs/8.2/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN
 para que se destina o comando EXECUTE.
 Creio que o que se deseja aqui é:
 SELECT PROCESSA_TITULAR(TRANS[i]);
 
 PERFORM PROCESSA_TITULAR(TRANS[I]);
 


Depende, se a função PROCESSA_TITULAR retornar algum dado o 
PERFORM desprezará esse dado retornado.
Concordo que se quizermos guardar um eventual retorno da função 
deveria ser utilizado SELECT INTO e não um simples SELECT.

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


Re: [pgbr-geral] Mudar formato de data no postgres

2008-01-23 Por tôpico Osvaldo Rosario Kussama
edersonecris escreveu:
 
 Instalei o pg com o formato de data em ymd, só que agora com todo o bd 
 pronto, tenho que fazer umas consultas de contas a pagar. E no delphi 
 estou tendo que escrever as datas nesse formato para filtra por sql. Tem 
 como eu mudar o formato de data no pg instalado no windows de forma 
 definitiva (incluindo alterando os registros gravados) para o formato dmy?
 


Você está confundindo o formato de exibição da data com o formato 
de armazenamento.
Um campo date é armazenado num formato próprio (basicamente a 
quantidade de dias contados a partir de determinada data).

Você pode instruir o PostgreSQL a como exibir os campos date bem 
como a maneira de interpretar uma data na entrada.

Veja o item 8.5.1 em:
http://www.postgresql.org/docs/8.2/interactive/datatype-datetime.html

bdteste=# SELECT current_setting('datestyle');
  current_setting
-
  Postgres, MDY
(1 registro)

bdteste=# SELECT current_date, to_char(current_date, 'DDMON');
 date|  to_char
+---
  01-23-2008 | 23JAN2008
(1 registro)

bdteste=# --
bdteste=# -- Formato de interpretação e exibição de datas
bdteste=# --
bdteste=# -- ISO
bdteste=# --
bdteste=# SET datestyle TO ISO, MDY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.');
 date|   to_char
+-
  2007-02-09 | 02.SEP.2007
(1 registro)

bdteste=# SET datestyle TO ISO, DMY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.');
 date|   to_char
+-
  2007-02-09 | 09.FEB.2007
(1 registro)

bdteste=# --
bdteste=# -- SQL
bdteste=# --
bdteste=# SET datestyle TO SQL, MDY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.');
 date|   to_char
+-
  02/09/2007 | 02.SEP.2007
(1 registro)

bdteste=# SET datestyle TO SQL, DMY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.');
 date|   to_char
+-
  09/02/2007 | 09.FEB.2007
(1 registro)

bdteste=# --
bdteste=# -- Postgres
bdteste=# --
bdteste=# SET datestyle TO POSTGRES, MDY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.');
 date|   to_char
+-
  02-09-2007 | 02.SEP.2007
(1 registro)

bdteste=# SET datestyle TO POSTGRES, DMY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.');
 date|   to_char
+-
  09-02-2007 | 09.FEB.2007
(1 registro)

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


Re: [pgbr-geral] Conversão de data

2008-01-23 Por tôpico Osvaldo Rosario Kussama
Silfar Goulart de Castro escreveu:
 Pessoal, sem parecer ser  preguiça para procurar  na documnetação. Pois 
 estou numa corrida aqui para provar que o postgresql é a melhor opção 
 pra empresa.
 
 Preciso converter '01012008' em uma data, pra incluir num campo.
 
 Alguem pode me dar o caminho das pedras ?
 


Utilize a função to_date:
http://www.postgresql.org/docs/8.2/interactive/functions-formatting.html

bdteste=# SELECT to_date('01012008', 'DDMM');
   to_date

  2008-01-01
(1 registro)

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


Re: [pgbr-geral] Consulta danada

2008-01-23 Por tôpico Osvaldo Rosario Kussama
Rafael dos Santos Ferreira escreveu:
  
  
 Eu tenho duas tabelas, produtos e saidas. A tabela de produtos tem o 
 cadastro do produto
  e a tabela saida tem o total de saida mensal daquele produto.
  
  Saida:
 sai_produto integer
 sai_quantidade numeric (10,2)
 sai_valor  numeric (10,2)
 sai_data  date;
  
  o campo sai_data tera a ultimo dia do mes em questão.
  
 sai_produto sai_quantidade  sai_valorsai_data
01   10,001,50  31/01/2007
01   110,00  1,50  28/02/2007
01   1,00  0,50  31/03/2007
  
  
  
  
  Eu precisava relacionar elas duas da seguinte maneira:
 Os produtos com as suas 5 ultimas saidas.
 A grosso modo seria mais ou menos assim:
  
 
 select * (select * from saidas where saida.sai_codpro = ??? limit 5) 
 from produto
 


É difícil resolver este problema em uma expr'essão SQL. (difícil, 
não impossível para casos particulares).

É mais simples utilizar uma função do tipo:
CREATE OR REPLACE FUNCTION ult_n_saidas(n integer) RETURNS SETOF 
saida AS
$$
DECLARE
r_sai saida%ROWTYPE;
r_prod RECORD;

BEGIN
FOR r_prod IN SELECT DISTINCT cod_produto from produtos order 
by cod_produto LOOP
   FOR r_sai IN SELECT * FROM saida
 WHERE sai_produto = r_prod.cod_produto
  ORDER BY sai_data DESC LIMIT n LOOP
 RETURN NEXT r_sai;
   END LOOP;
END LOOP;
RETURN;
END;
$$ language 'plpgsql';

SELECT * FROM ult_n_saidas(5);

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


Re: [pgbr-geral] códigos de município

2008-01-22 Por tôpico Osvaldo Rosario Kussama
George Silva escreveu:
 Sou bastante novo em Postgresql e gostaria de saber como inserir esta 
 tabela toda de uma vez em uma tabela do meu BD.
  

Como estão formatados os dados que pretente inserir no bd?
Se, por exemplo, estiverem na forma de um arquivo texto csv utilize:
COPY sua_tabela FROM 'seu_arquivo' WITH CSV;

Veja mais opções em:
http://www.postgresql.org/docs/8.2/interactive/sql-copy.html

Ou, ainda, você pode utilizar algum utilitário do tipo pg_bulkload:
http://pgbulkload.projects.postgresql.org/

Leia as dicas deste capítulo do manual:
http://www.postgresql.org/docs/8.2/interactive/populate.html

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


Re: [pgbr-geral] códigos de município

2008-01-22 Por tôpico Osvaldo Rosario Kussama
George Silva escreveu:
  
 Uma outra questão: a tabela para qual eu vou copiar os registros 
 precisam estar com os campos correspondentes criados ou o pg os cria 
 para mim?
  

A criação do banco de dados, da tabela e seus respectivos campos, 
é reponsabilidade sua.
Creio que é bom você dar uma lida em:
http://www.postgresql.org/docs/8.2/interactive/tutorial.html
Se preferir em português, veja:
http://pgdocptbr.sourceforge.net/pg80/tutorial.html


 
  
 On 1/22/08, *Osvaldo Rosario Kussama* [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED] wrote:
 
 George Silva escreveu:
   Sou bastante novo em Postgresql e gostaria de saber como inserir esta
   tabela toda de uma vez em uma tabela do meu BD.
  
 
 Como estão formatados os dados que pretente inserir no bd?
 Se, por exemplo, estiverem na forma de um arquivo texto csv utilize:
 COPY sua_tabela FROM 'seu_arquivo' WITH CSV;
 
 Veja mais opções em:
 http://www.postgresql.org/docs/8.2/interactive/sql-copy.html
 
 Ou, ainda, você pode utilizar algum utilitário do tipo pg_bulkload:
 http://pgbulkload.projects.postgresql.org/
 
 Leia as dicas deste capítulo do manual:
 http://www.postgresql.org/docs/8.2/interactive/populate.html
 http://www.postgresql.org/docs/8.2/interactive/populate.html
 

Aproveite e veja também este artigo do Fábio Telles:
http://www.midstorm.org/~telles/2006/09/10/10-dicas-para-comecar-a-usar-o-postgresql/

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


Re: [pgbr-geral] Migração

2008-01-21 Por tôpico Osvaldo Rosario Kussama
Silfar Goulart de Castro escreveu:
 Valeu Osvaldo, mas como saber se deu erro pra dar uma rollback ?
 tem alguma coisa paredida com exception ?
 


Veja:
http://www.postgresql.org/docs/8.2/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING

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


Re: [pgbr-geral] COPY TO

2008-01-21 Por tôpico Osvaldo Rosario Kussama
[EMAIL PROTECTED] escreveu:
 --- [EMAIL PROTECTED] escreveu:

 Bom dia a todos, estou com um problema na hora de
 exportar um arquivo em
 uma função, alguém poderia me dar uma ajuda...

 a função é a seguinte:

 SELECT

 ''/www/time/nf/''||fn_erp_login_fabrica()||''-''||nota_fiscal||''.nfc''
 AS nfc,


 ''/www/time/nf/''||fn_erp_login_fabrica()||''-''||nota_fiscal||''.nfc''
 AS nfi
 INTO   rec
 FROM   vw_faturamento
 WHERE  faturamento = t_faturamento;

 t_arquivo_nfc := ''||rec.nfc||'';
 t_arquivo_nfi := ''||rec.nfi||'';

 SELECT *
 INTO TEMP temp_fa_imprime
 FROM vw_faturamento
 WHERE faturamento = t_faturamento;

 SELECT *
 INTO TEMP temp_fi_imprime
 FROM vw_faturamento
 WHERE faturamento = t_faturamento;

 COPY temp_fa_imprime TO t_arquivo_nfc;
 COPY temp_fi_imprime TO t_arquivo_nfi;


 Você colocou apenas um trcho de sua função. Me parece
 que você está tentando executar comandos dinâmicos.
 Veja EXECUTE em:
 http://www.postgresql.org/docs/8.2/interactive/plpgsql-statements.html

 Osvaldo

 Na verdade eu estou tentando setar em uma varíavel o endereco, mas quando
 do o copy tabela to variavel não compíla...
 

Se eu entendi corretamente o que você deseja fazer, tente:
EXECUTE 'COPY (SELECT * FROM vw_faturamento WHERE faturamento = 
t_faturamento) TO ' || rec.nfc;

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


Re: [pgbr-geral] Procedure com array

2008-01-21 Por tôpico Osvaldo Rosario Kussama
Silfar Goulart de Castro escreveu:
 Pessoal eu tenho a seguinte procedure:
 
 CREATE OR REPLACE FUNCTION processa_trans(trans character varying[])
   RETURNS boolean AS
 $BODY$
 DECLARE
   tam_array int;
 BEGIN
   tam_array = array_upper(trans,1);
   for i in 1..tam_array loop
  if SUBSTR(TRANS[i],3,3) = 'TIT' then
 execute PROCESSA_TITULAR(TRANS[i]);
  end if;

   end loop;
 END;
 $BODY$
   LANGUAGE 'plpgsql' VOLATILE;
 ALTER FUNCTION processa_trans(character varying[]) OWNER TO postgres;
 
 
 
 como vcs podem ver ela recebe um parametro que é um array. Este array 
 nada mais é do linhas que eu tenho que tratar dentro da procedure.
 
 Agora como é que eu faço para testar esta função, como eu passo este 
 parametro para ela ?
 


Tente:
SELECT processa_trans(ARRAY['abcd', 'efghi', 'jklTITmnop']);

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


Re: [pgbr-geral] Migração

2008-01-18 Por tôpico Osvaldo Rosario Kussama
Silfar Goulart de Castro escreveu:
 Pessoal, tô desenvolvendo uma aplicação aqui que vai usar stored 
 procedure, e testei alguns bancos até agora o firebird e o mysql. 
 Gostaria de tirar algumas duvidas.
 
 O postgresql permite controle d etransação dentro de procedure, isto é 
 eu posso dar commite e rollback dentro da procedure ?

Uma stored procedure (function no caso do PostgreSQL) é executada 
  como uma transação.
O que você pode ter é SAVEPOINTs que são pontos para os quais 
você pode retornar dentro de uma transação (ROLLBACK TO 
SAVEPOINT) ou desconsiderálo se tudo estiver correto (RELEASE 
SAVEPOINT). Veja:
http://www.postgresql.org/docs/8.2/interactive/sql-savepoint.html

 
 Ele tem tipo array dentro de procedures ?

Sim.

 
 Auto incremento tem né com sequence.

Sim.

 
 Existe alguma maneira de migrar dados do firebird ou do mysql para o 
 postgresql, vi que os scripts com metadados gerados por esses bancos são 
 meio diferentes do PG e causam muitos erros.

Verifique se tem algo que te ajude:
http://www.postgresql.org/docs/techdocs.3

Por diversas vezes foi sugerido nesta lista que se faça uma 
exportação dos dados para um arquivo texto csv e posterior 
importação.

Desconfie das ferramentas que prometem fazer tudo 
automaticamente. Quem melhor sabe como deve ser feita a 
conversão, bem como a maneira de tratar cada uma das 
particularidades, é você.

Osvaldo

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


Re: [pgbr-geral] junção de campos

2008-01-16 Por tôpico Osvaldo Rosario Kussama
Geion Correia escreveu:
 Pra ficar mais claro:
 
 dt_parada (date)
 dt_horainicial(varchar).
 
 dt_parada_hrinicial(timestamp)
 
 vlw!
 
 
 2008/1/15, Geion Correia  [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED]:
 
 Caros,
 
 Em meu banco tenho dois campos um do tipo data e um
 outro varchar, até
 aí tudo bem, só que eu quero fazer um campo do tipo timestamp e colocar 
 os dois valores. 
 Como eu posso fazer isso?
 


Você não informou qual o formato de seu string que representa a 
hora inicial. Supondo que seja '03:45' você pode utilizar uma 
simples adição (com o cast correspondente):

bdteste=# SELECT '2008-01-15'::date + '03:45'::time;
   ?column?
-
  2008-01-15 03:45:00
(1 registro)

Veja:
http://www.postgresql.org/docs/8.2/interactive/functions-datetime.html

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


Re: [pgbr-geral] sequencias

2008-01-16 Por tôpico Osvaldo Rosario Kussama
Marcelo Magno escreveu:
 
 Estou precisando gerar sequencias para documentos os onde os mesmo 
 deverão ter sequencias contendo:
 
 ano corrente:
 mes corrente:
 seguencia de 1 a 9 dentro do mes em questao.
 
 Pegar o ano e o mes corrente é molezinha, o problema esta sendo essa 
 sequencia de 1 a n dentro de um mes. Toda vez que muda o mes, essa 
 sequencia deveria comecar novamente.
 
 Não estou vendo outra maneira a nao ser ter uma tabela separada contendo 
 3 colunas (ano, mes, sequencia) e trabalhar usando locks de registro 
 para incrementar a sequencia e pegar esse valor incrementado.
 
 Alguem teria alguma outra forma de ver o problema, ou alguma dica na 
 correta utilizacao desses locks ? Isso não eh uma coisa que eu goste de 
 fazer manualmente (geralmente deixo por conta do banco de dados), mas 
 dessa vez a necessidade esta me obrigando a tal.
 


Veja se este artigo ajuda:
Level Numbering using Sequences
http://www.varlena.com/varlena/GeneralBits/64.php

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


Re: [pgbr-geral] Sort em Array

2008-01-16 Por tôpico Osvaldo Rosario Kussama
Vinicius escreveu:
 
 Pessoal, precisei ordenar um array e vi que na versão 8.2 não existe nada 
 parecido com Array_Sort(), parece que na versão 8.3 já tem isso pronto.
 
 A Solução que eu encontrei foi criar uma função na unha mesmo, para ordenar 
 o meu array(oq não é muito simples ! ), mas não sei se esta seria a melhor 
 solução...Alguém já precisou disso ? qual seria a melhor solução na 8.2 ?
 


Você não mencionou qual o tipo de dado de seu array. Se for um 
array de inteiros veja a função sort em contrib/intarray.

Ou, no caso geral, esta função SQL:

CREATE OR REPLACE FUNCTION array_sort (ANYARRAY)
RETURNS ANYARRAY
LANGUAGE SQL
AS $$
SELECT ARRAY(
 SELECT $1[s.i] AS foo
 FROM generate_series(array_lower($1,1), array_upper($1,1)) 
AS s(i)
 ORDER BY foo);
$$;

bdteste=# SELECT array_sort(ARRAY['c','b','a']);
  array_sort

  {a,b,c}
(1 registro)

Osvaldo
___
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 campos timestamp na mig ração do postgresql 7.4 para o 8.2

2008-01-15 Por tôpico Osvaldo Rosario Kussama
Cássio Marques escreveu:
 Então, mas o problema é que nem o dump do 7.4 estou conseguindo gerar... 
 Independentemente de onde eu vou realizar o restore, os dados já estão 
 sendo corrompidos no próprio dump do 7.4...
 


Tente utilizar o pg_dump / pg_dumpall da versão 8.2 para gerar o 
back-up dos dados existentes na versão 7.4.

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


Re: [pgbr-geral] recuperar banco

2008-01-15 Por tôpico Osvaldo Rosario Kussama
rodrigo escreveu:
 
 Tem uma maquina que fica dentro de um predio que nao pode ter rede, 
 entao o banco fica local.
 
 So que a maquina quebrou e o hd so funciona se ligado em outro hd.
 
 Gostaria de saber como posso fazer para recuperar o banco que esta no hd 
 que quebrou?
 


Bom, se o hd quebrou então espero que você tenha o back-up de 
seus dados gravados em outro meio.

Como no início de sua mensagem você dá a entender que o que 
quebrou foi seu servidor, e não o hd, então tente o seguinte:
- em uma máquina com *a mesma arquitetura e sistema operacional* 
da máquina que quebrou instale a mesma versão do PostgreSQL;
- rode o initdb para recriar o diretório data;
- altere postgresql.conf para que registre no log o máximo 
possível de informações;
- inicie o servidor PostgreSQL;
- assegure que tudo está funcionando corretamente (SELECT 
version() exibe a versão correta?);
- pare o servidor PostgreSQL;
- renomeie seu diretório data para, por.ex, data.vazio;
- copie o diretório data do hd da máquina que quebrou;
- assegure-se que o postgresql.conf está com todos os parâmetros 
de log ativados;
- compare a propriedade (dono e grupo) bem como as permissões 
existentes nos diretórios data e data.vazio corregindo, se 
necessário;
- dê start no servidor PostgreSQL.

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


Re: [pgbr-geral] Instalação postgre

2008-01-11 Por tôpico Osvaldo Rosario Kussama
Fabricio Boaventura escreveu:
 
 Concluir a instalação no freebsd
 
 caso alguem queira o passo a passo que usei.
 
 1 #8211; cd /usr/ports/databases/postgresql82-server
 2 #8211; make install clean
 3 #8211; Selecionei as opções: NLS, OPTIMIZED_CFLAGS
 e DEBUG
 4 #8211; habilitei no rc.conf:
 postgresql_enable=#8221;YES#8221;
 5 #8211; /usr/local/etc/rc.d/postgresql initdb (Não
 entendi mt bem o que este comando faz,  se alguém
 puder explicar )
 6 #8211; /usr/local/etc/rc.d/postgresql start
 
 Bem facim..hehehehhehehe
 


RTFM!
http://www.postgresql.org/docs/8.2/interactive/app-initdb.html

O utilitário initdb cria um agrupamento de bancos de dados do 
PostgreSQL. Um agrupamento de bancos de dados é uma coleção de 
bancos de dados gerenciados por uma única instância do servidor.

Criar um agrupamento de banco de dados consiste em criar os 
diretórios onde os bancos de dados vão residir, gerar as tabelas 
do catálogo compartilhadas (tabelas que pertencem ao agrupamento 
como um todo, e não a um determinado banco de dados), e criar os 
bancos de dados template1 e postgres.

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


Re: [pgbr-geral] existem funções similares no post gres iguais as AES_ENCRYPT e AESDECRYPT do mysql

2007-12-21 Por tôpico Osvaldo Rosario Kussama
junior Prado escreveu:
 Osvaldo,
 
 1º - Instalei o módulo postgresql-contrib;
 2º - Configurei no postgresql.conf a opcao ssl=true;
 3º - coloquei um registro hostssl no arquivo pg_hba.conf;
 4º - Crie a tabela
 CREATE TABLE crypto (
 id SERIAL PRIMARY KEY,
 title VARCHAR(50),
 crypted_content BYTEA
 );
 
 5º Ao executar a query abaixo INSERT INTO crypto VALUES 
 (1,'test1',encrypt('daniel', 'fooz', 'aes')); deu o seguinte erro:
 
 ERRO:  função encrypt(unknown, unknown, unknown) não existe
 LINE 1: INSERT INTO crypto VALUES (1,'test1',encrypt('daniel'...
 ^
 HINT:  Nenhuma função corresponde com o nome e os tipos de argumento 
 informados. Você precisa adicionar conversões de tipo explícitas.
 
 ** Erro **
 
 ERRO: função encrypt(unknown, unknown, unknown) não existe
 SQL state: 42883
 Dica: Nenhuma função corresponde com o nome e os tipos de argumento 
 informados. Você precisa adicionar conversões de tipo explícitas.
 Caracter: 45
 
 Att.
 
 Junior
 
 
 Em 20/12/07, *Osvaldo Rosario Kussama* [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED] escreveu:
 
 junior Prado escreveu:
  
   Existem dois tipos de transformadores criptográficos:
   Os simétricos utilizam a mesma chave para cifrar e decifrar, como por
   exemplo no mysql AES_ENCRYPT() e AES_DECRYPT();
   Os assimétricos são criptografia apenas de ida, não tendo como
   descriptografar, exemplo de MD5 e SHA.
   Pergunto a todos, O POSTGRES tem alguma função similar ao MYSQL
   (AES_ENCRYPT() e AES_DECRYPT())? Pois gostaria de cifrar e
 decifrar...
  
  
 
 
 Não conheço as referências do MYSQL mas, creio que já foi
 sugerido, você já olhou o contrib/pgcrypto?
 Veja no README os itens 5 e 6, talvez atendam às suas necessidades.
 


Do README.pgcrypto em contrib/pgcrypto:
1.  Installation
-

Run following commands:

 make
 make install
 make installcheck

The `make installcheck` command is important.  It runs regression 
tests for the module.  They make sure the functions here produce 
correct results.

Next, to put the functions into a particular database, run the 
commands in file pgcrypto.sql, which has been installed into the 
shared files directory.

Example using psql:

 psql -d DBNAME -f pgcrypto.sql

Você seguiu estes passos?

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


Re: [pgbr-geral] existem funções similares no post gres iguais as AES_ENCRYPT e AESDECRYPT do mysql

2007-12-20 Por tôpico Osvaldo Rosario Kussama
junior Prado escreveu:
 
 Existem dois tipos de transformadores criptográficos:
 Os simétricos utilizam a mesma chave para cifrar e decifrar, como por 
 exemplo no mysql AES_ENCRYPT() e AES_DECRYPT();
 Os assimétricos são criptografia apenas de ida, não tendo como 
 descriptografar, exemplo de MD5 e SHA.
 Pergunto a todos, O POSTGRES tem alguma função similar ao MYSQL 
 (AES_ENCRYPT() e AES_DECRYPT())? Pois gostaria de cifrar e decifrar...
 
 


Não conheço as referências do MYSQL mas, creio que já foi 
sugerido, você já olhou o contrib/pgcrypto?
Veja no README os itens 5 e 6, talvez atendam às suas necessidades.

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


Re: [pgbr-geral] idade gerada com erro

2007-12-18 Por tôpico Osvaldo Rosario Kussama
saulo Mendes escreveu:
 
 pessoal, entendi a questão. Muito obrigado pela compreensão. Mas fica 
 uma outra dúvida:
  
 será que existe uma forma de se considerar que 30 dias = 1 mês ??
  


justify_days?
Veja 
http://www.postgresql.org/docs/8.2/interactive/functions-datetime.html:
justify_days(interval) : Adjust interval so 30-day time periods 
are represented as months

bdteste=# SELECT justify_days('60 days'::interval);
  justify_days
--
  2 mons
(1 registro)

bdteste=# SELECT justify_days('360 days'::interval);
  justify_days
--
  1 year
(1 registro)

bdteste=# SELECT justify_days(age('2007-12-17'::date, 
'2003-12-18'::date));
  justify_days
--
  4 years
(1 registro)

Osvaldo

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


Re: [pgbr-geral] Criação de Contraint MUITO lenta . Era Tempo excessivo ao restaurar o banco.

2007-12-17 Por tôpico Osvaldo Rosario Kussama
Sergio Medeiros Santi escreveu:
 Pessoal, a luta continua.
 
 Depois de colocar em prática muitas das sugestões recebidas (senão 
 todas) sem nenhum resultado aparente resolvi fazer um backup na 8.1.9, 
 desinstalar o 8.1.9, instalar o 8.2.5 e restaurar o backup realizado. O 
 resultado foi praticamente o mesmo, ou seja, de um total de 13:40, 9:40 
 foram consumidos pela aplicação da constraint nefasta. Também desta vez 
 o consumo de cpu ficou abaixo de 10%, tipicamente 4%.
 
 Minha idéia agora é enviar este problema para os mantenedores do PG. 
 Neste sentido eu preciso de vocês a indicação de para onde enviar este 
 problema e se é preciso me cadastrar em alguma nova lista.
 
 Também gostaria que vocês analisassem o cenário abaixo e, se for o caso, 
 me sugiram informações a acrescentar ou suprimir.
 
 Antecipo agradecimentos,
 
 CENÁRIO:
 --
 
 Hardware: Dell Power Edge 1900, Dual Xeon 3.2, Ram 4Gb, Disco 160Gb SAS
 
 PostgreSQL: 8.2.5 em Server W2K3 SP2
 
 Principais parâmetros do postgresql.conf:
 - max_connections  =  100
 - enable = bitmapscan-On, hashagg-On, hashjoin-On, indexscan-On, 
 mergejoin-On, nestloop-On, seqscan-Off, sort-On, tidscan-Off
 - efective_cache_size  =  128MB
 - maintenance_work_mem =  120MB
 - max_stack_deph   =2MB
 - shared_buffers   = 1000MB
 - work_mem =   10MB
 - max_fsm_pages= 204800
 - max_fam_relations=   2000
 - checkpoint_segments  = 30
 
 Base de dados com 22GB
 Tempo para restaurar: 13:40:00
 
 Constraint problemática na restauração:
 Tabela Produto com 17MB e 40.000 registros
 Tabela NotaItem com 9GB e  18.500.000 registros
 Constraint Lenta: ALTER TABLE NotaItem
 ADD CONSTRAINT NotaItem_CodigoProduto_Produto_FK 
 FOREIGN KEY (CodigoProdutoItem)
 REFERENCES Produto (CodigoInternoProduto) 
 MATCH FULL
 ON UPDATE RESTRICT ON DELETE RESTRICT;
 Tempo para aplicar: 09:40:00 (9 horas e 40 minutos)
 
 Constraint sem problema na restauração (a título de exemplo):
 Tabela NotaFiscal com 1GB e 1.500.000 registros
 Tabela NotaItem com 9GB e  18.500.000 registros
 Contraint Rápida: ALTER TABLE NotaItem
 ADD CONSTRAINT 
 NotaItem_CodigoNotaItem_NotaFiscal_FK FOREIGN KEY (CodigoNotaItem)
 REFERENCES NotaFiscal (CodigoInternoNota) 
 MATCH FULL
 ON UPDATE NO ACTION ON DELETE CASCADE;
 Tempo para aplicar: 00:08:00 (8 minutos)
 
 
 Bem, além destas informações pretendo enviar em anexo as DDLs das duas 
 tabelas envolvidas na constrainte LERDA e da constraint satisfatória, 
 além do postgresql.conf completo.
 
 Esqueci algo ou exagerei nos detalhes?
 


Talvez esta lista seja a mais indicada para você expor seu problema:
http://archives.postgresql.org/pgsql-performance/

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


Re: [pgbr-geral] Tempo excecivo ao restaurar banco - M ais alguém se habilita?

2007-12-14 Por tôpico Osvaldo Rosario Kussama
Sergio Medeiros Santi escreveu:
 Não testei o -1 não, mas que mal le pergunte, aplicar uma constraint 
 gera alguma atualização ou apenas valida a restrição?
 
 Abraços,
 
 Sergio Medeiros Santi
 
 
 Osvaldo Rosario Kussama escreveu:
 Ninguém comentou mas você tentou utilizar a opção -1 (ou 
 --single-transaction)?
 http://www.postgresql.org/docs/8.2/interactive/app-pgrestore.html



Creio que esta opção agiliza o processo como um todo. 
Especificamente para a restrição de integridade já sugeriram que 
você ajustasse o maintenance_work_mem. Em:
http://www.powerpostgresql.com/Downloads/annotated_conf_80.html
existe o seguinte comentário:

Specifies the maximum amount of memory to be used in maintenance 
operations, such as VACUUM, CREATE INDEX, and ALTER TABLE ADD 
FOREIGN KEY. The value is specified in kilobytes, and defaults to 
16384 kilobytes (16 MB). Since only one of these operations can 
be executed at a time by a database session, and an installation 
normally doesn't have very many of them happening concurrently, 
it's safe to set this value significantly larger than work_mem. 
Larger settings may improve performance for vacuuming and for 
restoring database dumps.

Formerly vacuum_mem. Renamed to reflect its expanded role in 
allocating memory for index loads.

The default for this is generally too low, and will result in 
VACUUMs and index creation tying up the system I/O and/or object 
locks while it swaps memory. Good settings are generally 32MB to 
256MB; it depends on both the RAM you have available and the size 
of your largest (expected) database objects.

Like work_mem, can be allocated at runtime so you can increase it 
temporarily for loading indexes/creating keys on very large tables.

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


Re: [pgbr-geral] Tempo excecivo ao restaurar banco - M ais alguém se habilita?

2007-12-14 Por tôpico Osvaldo Rosario Kussama
Sergio Medeiros Santi escreveu:
 Não testei o -1 não, mas que mal le pergunte, aplicar uma constraint 
 gera alguma atualização ou apenas valida a restrição?
 
 Abraços,
 
 Sergio Medeiros Santi
 
 
 Osvaldo Rosario Kussama escreveu:
 Ninguém comentou mas você tentou utilizar a opção -1 (ou 
 --single-transaction)?
 http://www.postgresql.org/docs/8.2/interactive/app-pgrestore.html




Complementando:

Você também pode colocar fsync como off (com os devidos cuidados).

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


Re: [pgbr-geral] Calcular dias úteis(excluir sabad os dom. e feriados)

2007-12-13 Por tôpico Osvaldo Rosario Kussama
Marcos Barbosa escreveu:
 


Em primeiro lugar verifique por que suas últimas mensagens estão 
vindo sem o corpo da mensagem.

Quanto aos dias úteis você pode determinar facilmente o dia da 
semana utilizando a função extract com 'dow':

SELECT '2007-12-01'::date+s.a
   FROM generate_series(0,30,1) s(a)
  WHERE extract('dow' FROM '2007-12-01'::date+s.a)
BETWEEN 1 AND 5;

Quanto aos feriados a coisa pode ou não se complicar.
Existem os feriados oficias (previstos em lei nos âmbitos 
nacional, estadual e municipal), os de categoria profissional 
(normalmente previstos nos acordos intersindicais), outros como 
os bancários (determinados pelo BACEN) e os da BOVESPA, e outros 
que são feriados de facto (você sabia que o Carnaval não é um 
feriado nacional, nem estadual e somente alguns municípios 
declaram ponto facultativo?).

A solução mais simples é criar uma tabela com os feriados que 
você irá considerar e atualizá-la quando julgar necessário.

A solução mais geral envolve calcular os feriados móveis (vários 
deles dependem da Páscoa cuja data pode ser determinada através 
de uma rotina, por exemplo em PL/pgSQL) e através de uma função 
do tipo SRF calcular os feriados de um dado período.

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


Re: [pgbr-geral] formatação_Moeda.

2007-12-13 Por tôpico Osvaldo Rosario Kussama
Marcelo escreveu:
 REPLACE(TRIM(TO_CHAR(REPLACE(CAMPO, ''99G999D99'' ,'G', '  '))), '  ', '.');
 
 VEJA O ERRO:
 ERROR: function replace(numeric, unknown, unknown, unknown) does 
 not exist
 


Veja se ajuda:
bdteste=# SELECT 
ltrim(to_char(12345.67,'999.999.999.999D99'),' .');
ltrim
---
  12.345,67
(1 registro)

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


Re: [pgbr-geral] Tempo excecivo ao restaurar banco - M ais alguém se habilita?

2007-12-13 Por tôpico Osvaldo Rosario Kussama
Sergio Medeiros Santi escreveu:
 Pessoal, vou responder meu próprio e-mail para evitar responder um a um. 
 Desde já o meu obrigado a todos.
 
 Eu particularmente gosto muito deste trabalho investigativo. Normalmente 
 quando descobrimos o que houve percebemos que é possível usar a 
 descoberta em outros pontos com expressivos resultados. Infelizmente o 
 PG anda tem alguns mistérios a resolver. O principal deles é desenvolver 
 um configurador que reuna informações sobre o hardware e sugira uma 
 configuração razoável. Isto teria me ajudado bastante quando comecei com 
 o PG. Pelo que olhei das apresentações do PGCon a coisa continua mais ou 
 menos igual, não existe ciência nisto, mas alguma recomendações (poucas 
 infelizmente).
 
 Bem voltando ao assunto. Eu não eliminei a constraint e a recriei porque 
 acredito que ela sonsumirá o mesmo tempo que levou no restore. 
 Configurei o postgres.conf para registrar tudo com mais de 500 ms e a 
 criação desta constraint está lá, bem clara, com os valores que forneci 
 anteriormente.
 
 Seguem algumas respostas a perguntas que me foram feitas:
 
 - Dickson. Não há nada rodando no servidor, além do restore. O servidor 
 está dedicado a este teste.
 
 - Cláudio. Não testei eliminar e recriar a constraint, mas também tenho 
 uma forte suspeita de que por algum motivo ele não esteja usando os 
 índices, uma vez que os dois são bastante explícitos, sendo um a pk.
 
 -  Leandro. O tempo de backup é de 1 hora e de vacuum analyse de 4 
 horas. Como o cliente fica 8 horas fechado o tempo está sendo 
 suficiente. Por outro lado eu tenho achado tão estimulante este caso que 
 estou preferindo dividir minhas pesquisas, conclusões e dúvidas com a 
 lista do que invocar algum guru. Contudo não tenho nenhum problema com 
 isso e já usei-os em alguma ocasiões onde não havia tempo para aprender 
 ou para resolver o problema.
 
 - Evandro. Não alterei o restrict para noaction porque achava que eram a 
 mesma coisa. Acho que vou testar isto antes de dropar a constraint e 
 recriá-la.
 
 - Fernando. Na verdade a estrategia de backup funciona bem o problema é 
 o restore. Felizmente não tive a necessidade de restaurar forçadamente o 
 banco, só não consigo engolir que de 14 horas, 12 foram consumidas 
 apenas por uma constraint. Não me parece ser uma referência circular 
 porque o treco demora mas termina e nada é registrado no log que pudesse 
 me levar a acreditar nisto.
 
 - Fábio. O autovacuum não é utilizado, mas diariamente é disparado um 
 backup seguido de um vacuum analyse. Originalmente era usado o vacuum 
 full, mas este foi abandonado porque em algumas oportundades ele não 
 terminava e o banco ficava travado para os usuário no dia seguinte. O 
 que tenho procurado fazer é um backup seguido de restore com alguma 
 periodicidade. Alias é este procedimento que me fez questionar esta 
 aplicação de constraint absurdamente lenta.
 
 - Luiz. Estou usando 32M em shared_buffers e 16M em maintenance_work_mem.
 
 Bem gente era isto vou usar todas estas considerações para novos teste 
 assim que tiver novidades eu posto. Outra coisa. Não sei se esta minha 
 idéia de reunir tudo num único e-mail foi muito boa. A idéia era 
 sintetizar tudo e evitar repetir considerações.
 
 Abraços a todos,
 
 Sergio Medeiros Santi
 
 
 
 Sergio Medeiros Santi escreveu:
 Pessoal:

 Ontem as 12 horas eu larguei a restauração novamente. As novas 
 informações são as seguintes:

 Tempo total de restauração olhando pelos logs registrados: 14:03 (14 
 horas!)
 Tempo total da aplicação da constraint listada abaixo: 12:13 (12 horas!!!)

 Olha eu agradeço as sugestões de fazer backup físico, das 
 informações de tempo de outros usuários, mas eu continuo achando que 
 tem algo errado no meu caso. Uma única constraint consumindo 12 horas 
 de um total de 14 horas necessários! Acho demais. Outro fato 
 interessante é que, dentro do que acompanhei da aplicação da 
 constraint o consumo de processador é baixíssimo (menos de 10% em um 
 Xeon 2.13), bem como apresenta baixo consumo de memória e baixa 
 atividade de disco. Parece simplesmente que esta etapa da restauração 
 está fazendo corpo mole, operação tartaruga.

 Também já citei o tamanho da base (30G ao fazer o backup e 21G após a 
 restauração) e o número de registros das duas tabelas envolvidas 
 (NotaItem com 20.000.000 de registros e Produto com 40.000 registros). 
 Pelo nível técnico das discussões que acompanho nesta lista eu 
 esperava algum questionamento, ou sugestão mais relacionado ao 
 problemas, ou ao menos uma afirmação de que os tempos que citei são 
 normais (o que não acredito).

 Alguém sabe me dizer o que justifica que uma única contraint consumir 
 tanto tempo? A mesma tabela aplica outras constraints em muito menos 
 tempo (NotaItem com 20.000.000 de registros e NotaFiscal com 1.400.000 
 registros) por exemplo, consome 4 minutos. Existe alguma forma de 
 fazer um explain analyse de uma constraint?

 Pelo nível das discussões que 

Re: [pgbr-geral] [pgbr-dev] Rescaldo do PgCon: texto de palestras, ano que vem, fotografias, hackers

2007-12-11 Por tôpico Osvaldo Rosario Kussama
Diogo Biazus escreveu:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Pois é, eu também gostaria de ter acesso a isso. Quem sabe alguém não 
 monta um DVD e envia ;).
 
 Pessoal, sobre as palestras do pgcon br, acho que podemos abrir uma área
 no moin para isso e colocar todas lá.
 Isso pode ser feito por qualquer um, basta se inscrever no Moin. Vou
 colocar a minha no ar amanhã.
 
 Sobre as fotos, essa semana vou colocar no ar no site do evento, já
 coloquei um aviso na capa do www.postgresql.org.br
 
 Os vídeos eu peço para quem estava no evento, se estiver aqui na lista
 por favor entre em contato para podermos colocar no ar.
 



Diogo:

Por alguma razão o texto da primeira linha dos slides de sua 
apresentação não aparecem no pdf (2a.pdf). É possível 
regera-los?

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


Re: [pgbr-geral] Transação

2007-12-11 Por tôpico Osvaldo Rosario Kussama
Julio Cesar Merenda Catardo escreveu:
 Alguém sabe como fazer uma trasação dentro de uma função 
  
 estou tentando :
  
  
 BEGIN;
 BLA.BLA.BLA.BLA
 COMMIT;
 


Uma função é tratada como uma transação.
Verifique se pontos de salvamento pode ajudá-lo:
http://www.postgresql.org/docs/8.2/interactive/sql-savepoint.html

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


Re: [pgbr-geral] PgCon caminho do hotel ate o evento

2007-12-05 Por tôpico Osvaldo Rosario Kussama
Heloisa Fernanda escreveu:
 
 Por favor, alguém da lista poderia me passar o melhor caminho de carro 
 entre o hotel Century ate o evento?
 



. Vá em: http://maps.google.com/
. Clique em Get Directions
. Em start address coloque: Rua Teixeira da Silva, 647 - 
São Paulo - SP, Brasil
. Em End address coloque: Av. Pompéia, 888 - Perdizes -São 
Paulo, Brasil
. Clique no botão Get directions.
. Imprima o resultado

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


Re: [pgbr-geral] datestyle

2007-12-04 Por tôpico Osvaldo Rosario Kussama
Julio Cesar Merenda Catardo escreveu:
 Estou tentando alterar o datestyle do banco para 'sql, european', mas o 
 mesmo insiste em continuar no padrão 'iso, mdy'.
  
 PS - Estou alterando o arquivo postgresql.conf
  
 PostgreSQL 8.2.4
  



Você reiniciou o PostgreSQL depois de alterar o postgresql.conf?

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


Re: [pgbr-geral] [postgresql-br-avancado] Pesquisa Fonética

2007-12-04 Por tôpico Osvaldo Rosario Kussama
Marcelo Moacir Florindo escreveu:
 
 Existe alguma maneira de eu fazer pesquisas no banco do tipo:
 
 CAÇÃO
 CASSAO
 


Veja este link:
http://www.nabble.com/forum/ViewPost.jtp?post=6832880framed=y

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


Re: [pgbr-geral] Revista do PostgreSQL

2007-12-03 Por tôpico Osvaldo Rosario Kussama
Roberto Mello escreveu:
 On Dec 2, 2007 4:19 AM, Ribamar Sousa [EMAIL PROTECTED] wrote:
 Em 28/11/07, Adriano Boller[EMAIL PROTECTED] escreveu:

 Que tal colocarmos um site com forum e lá centralizar as materias posso
 desenvolver...

 Beleza Adriano. O Drupal, por default, já vem com um módulo de Forum,
 não há necessidade de desenvolver e já vem integrado. Vou ativar no
 
 Gente, pra que forum? Ja temos um gerenciador de listas instalado e
 funcionando no pgbr. Por que nao usa-lo? Todo mundo ja' sabe usar
 e-mail e nao precisa criar mais uma conta num outro site.
 
 E por que nao usar a lista da organizacao pra isso? Estao querendo
 abracar o mundo e recriar a roda tudo de uma vez e ao mesmo tempo?
 
 Como diz o Guy Kawasaki, Talk and bravado are cheap (conversa e
 bravura sao baratos). Eu prefiriria que fossemos digerindo as coisas
 devagar, colocando artigos dos que estao dispostos a escrever, antes
 de inventar toda uma infraestrutura sem nem termos os artigos.
 
 -Roberto



Só um comentário:
Bravura não é barata nem fácil. Bravata sim.

Osvaldo

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


Re: [pgbr-geral] J Dúvidas na chamada de uma Functio n

2007-11-29 Por tôpico Osvaldo Rosario Kussama
Jacques Nogueira dos Santos escreveu:
 
 
 Pessoal estou com problemas para chamar essa function.
 A function é criada, o que acontece é que não consigo chama-la para 
 execução.
  
  
  
 
 CREATE OR REPLACE FUNCTION financeiro.fn_fornec()
   RETURNS record AS
 $BODY$
 create temp sequence rownum;
 select nextval('rownum') as rownum
  , trim(lower(mneu_for)) as mneu_for
  , trim(nome_for) as nome_for
 from sbd95.fornec;
 $BODY$
   LANGUAGE 'sql' VOLATILE;
 ALTER FUNCTION financeiro.fn_fornec() OWNER TO postgres;
  
 
 O código de criação da sequencia temporária e o select, se executados 
 sozinhos funcionam:
  
 create temp sequence rownum;
 select nextval('rownum') as rownum
  , trim(lower(mneu_for)) as mneu_for
  , trim(nome_for) as nome_for
 from sbd95.fornec;
  
 
 Mas gostaria de colocar esse código dentro de uma function.
 Quando faço o select para executar a function e trazer os valores dá o 
 seguinte erro:
  
 
 select * from financeiro.fn_fornec();
  
 
 ERROR: a column definition list is required for functions returning record
 SQL state: 42601
  
  
  
 
 Como que eu faço para que ele me retorne os valores?Obs:Preciso que 
 traga o rownum por motivo do banco ser antigo.
 


Tente:
SELECT * FROM financeiro.fn_fornec() AS (a int, b varchar, c 
varchar);

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


Re: [pgbr-geral] Dados repetidos

2007-11-23 Por tôpico Osvaldo Rosario Kussama
geison correia escreveu:
 
 Eu preciso fazer uma função que me retorne todos os dados repetidos do
 banco. Alguém tem alguma sugestão?
 


O ideal seria que você detalhasse um pouco melhor o que deseja.
Vou supor que você tenha uma tabela e deseje saber se existe 
repetição do conteudo de um determinado campo.

   SELECT nome, count(nome) FROM tabela
   GROUP BY nome
   ORDER BY nome
   HAVING count(nome)  0;

O resultado é a relação de nomes com repetição bem como a 
quantidade de repetições.

Se não for isso reenvie sua questão com mais detalhes.

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


Re: [pgbr-geral] conversão de tipos

2007-11-22 Por tôpico Osvaldo Rosario Kussama
geison correia escreveu:
 
 Pessoal to com uma dúvida, eu tenho uma variável do tipo time
 'tempogasto'. Eu obtenho ela diminuindo dois registro:
 
 tempogasto := time_fim - time_ini;

Se as variáveis time_ini e time_fim são do tipo time a 
variável tempogasto não deveria ser do tipo interval?
http://www.postgresql.org/docs/8.2/interactive/functions-datetime.html


 
 Como eu faço essa operação:
 
 velocidade := x/tempogasto;
 
 Onde velocidade é do tipo float. eu a obtenho pegando a latitude e
 longitude do ponto.
 
 Eu tenho q converter mas n sei como faço:
 
 tempogasto tem essa mascara 00:00:00.
 


Segundo o manual não existe o operador para estes tipos de 
dados: float / interval

Utilizando a função extract ou date_part você pode converter 
  este interval para a unidade desejada (hora, minuto ou 
segundo ...) e fazer a operação, por ex.:

x / (EXTRACT(HOUR FROM t)*60*60 + EXTRACT(MINUTE FROM 
t)*60.0 + EXTRACT(SECOND FROM T))

Veja referência acima.

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


Re: [pgbr-geral] transformar duas linhas em uma

2007-11-22 Por tôpico Osvaldo Rosario Kussama
Heloisa Fernanda escreveu:
 
 Estou precisando de algo meio maluco... preciso transformar o resultado 
 de uma querie que retorna duas linhas em uma so...
 
 Por ex:
 select a.agenda_id, b.usuario_id from agenda a, usuario b where 
 a.status_id = 1 and b.agenda_id = a.agenda_id
 
 Eu tenho como resultado duas linhas:
 agenda_id | usuario_id
 2127 | 7
 2127 | 9
 
 Mas eu preciso de mostrar uma linha + ou - assim:
 agenda_id | usuario_id
 2127 | 7,9
 
 Alguem tem uma sugestão?
 



Utilize um agregado. Veja em:
http://www.postgresql.org/docs/8.2/interactive/xaggr.html
o exemplo array_accum.
Veja outro exemplo de agregação de texto em:
http://pgdocptbr.sourceforge.net/pg80/xaggr.html

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


Re: [pgbr-geral] Mensagem de erro.

2007-11-21 Por tôpico Osvaldo Rosario Kussama
Marcelo escreveu:
 *Amigo*
 ** 
 *Vamos lá*
 *campo cpf esse campo not null na table...ok*
 *No  insert into, se ele for null vai dar um erro no bdok*
 *essa menssagem do erro do bd, tem possiblidade de tratar ?*
 *dizendo para o usuário campo não pode ser branco.*
 ** 
 *Obs: Na aplicação não tem nenhuma validação para os campo Not Null..ok*
 Grato
  
  
 
 
  
 Em 21/11/07, *jota. comm* [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED] escreveu:
 
 Olá, Marcelo
 
 Não entendi direito. Você quer impedir que um campo seja null, caso
 seja, informa uma mensagem de aviso ao usuário, é isto?
 
 []s
 
 Em 21/11/07, *Marcelo* [EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]  escreveu:
 
 Prezados
  
 - Na ocasião tenho um campo Not Null em minha table caso não
 tenha validação na hora do Insert Into, ocorrera um erro de BD.
  
 - Duvida ??: Tem como tratar esse Mensagem, exibir para o
 usuário sem validação na aplicação.
  


Veja como dtectar o erro em:
http://www.postgresql.org/docs/8.2/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING
e a relação de erros em:
http://www.postgresql.org/docs/8.2/interactive/errcodes-appendix.html

Osvaldo
___
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 SELECT

2007-11-07 Por tôpico Osvaldo Rosario Kussama
geison correia escreveu:
 Pessoal obrigado pela ajuda, resolvi.
 deu certo!
 
 Agora tenho outra dúvida. A hora que eu recebo é adiantada em 5min,
 como eu faço pra tratar isso.
 
 SELECT current_time INTO data_hora;
 data_hora := data_hora - 5min
 


SELECT current_time - '5 minutes'::interval;

Veja:
http://www.postgresql.org/docs/8.2/interactive/functions-datetime.html

Osvaldo

PS: Você tem certeza que seu relógio está acertado ou o que 
você deseja é a data_hora 5 minutos atrás?
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Campos Tipo Numeric

2007-11-07 Por tôpico Osvaldo Rosario Kussama
Seta Digital - Suporte escreveu:
 E tem como converter um 99,99 para 99.99
 
 tipo utilizando o to_number
 


bdteste=# SELECT to_number('99,99', '99D99') - 11.11;
  ?column?
--
 88.88
(1 registro)


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


Re: [pgbr-geral] Exportar consulta

2007-11-07 Por tôpico Osvaldo Rosario Kussama
Rodrigo Maldonado escreveu:
  
 Gostaria de saber como eu exporto o resultado de uma consulta para um 
 arquivo txt, eu estou usando a seguinte instrução, mas não esta dando 
 muito certo...
  
 select * from tabela \o \home\arquivo.txt;
  
 O que estou fazendo de errado?
 


Tente:
\o /home/arquivo.txt
select * from tabela;

Veja:
http://www.postgresql.org/docs/8.2/interactive/app-psql.html
ou
http://pgdocptbr.sourceforge.net/pg80/app-psql.html

\o [ {nome_do_arquivo | |comando} ]

 Salva os resultados dos próximos comandos no arquivo 
nome_do_arquivo

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


Re: [pgbr-geral] Campos Tipo Numeric

2007-11-07 Por tôpico Osvaldo Rosario Kussama
Euler Taveira de Oliveira escreveu:
 Seta Digital - Suporte wrote:
 
 Gostaria de saber se existe alguma forma de padronizar um campo numeric
 EX: Numeric(9,2) O valor desse campo vai ser 100.00
  
 Gostaria q o valor desse campo, no local do ponto (que divide o valor
 inteiro dos centavos) fosse virgula
  
 Tem algum lugar que eu possa configurar isso???
  
 Basta configurar a variável lc_numeric no postgresql.conf (afeta todas
 as consultas) ou em tempo de execução (como abaixo). A função to_char()
 [1] faz todo trabalho.
 
 regression=# set lc_numeric to 'en_US';
 SET
 Tempo: 42,547 ms
 regression=# select to_char(100::numeric(9,2), '9990D99');
  to_char
 --
100.00
 (1 registro)
 
 Tempo: 0,857 ms
 regression=# set lc_numeric to 'pt_BR';
 SET
 Tempo: 0,558 ms
 regression=# select to_char(100::numeric(9,2), '9990D99');
  to_char
 --
100,00
 (1 registro)
 
 Tempo: 0,616 ms
 regression=#
 
 [1] http://www.postgresql.org/docs/8.2/static/functions-formatting.html
 
 

Euler:

Aproveitando a questão, como faço com o separador de milhar?

bdteste=# SHOW lc_numeric;
  lc_numeric
-
  pt_BR.UTF-8
(1 registro)

bdteste=# SELECT to_char(1234.5::numeric(9,2), '99G999D99');
   to_char

1,234,50
(1 registro)

O resultado esperado seria: 1.234,50

Osvaldo
___
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 SELECT

2007-11-07 Por tôpico Osvaldo Rosario Kussama
geison correia escreveu:
 Caros resolvi o problema parcialmente, mas o q eu estou fazendo de errado 
 agora?
 
 WHILE resultado AND resultado.ddl_dh = data_hora AND resultado.ddl_dh  hora 
 LOOP
 
 Da o seguinte erro:
 
 ERRO:  argumento do AND deve ser do tipo boolean, e não do tipo dado_lido
 CONTEXT:  comando SQL SELECT   $1  AND  $2  =  $3  AND  $2   hora
 
 qual o melhor jeito de fazer esse laço? Tentei usar um FOR, mas n deu certo.
 
 FOR resultado IN resultado.ddl_dh = data_hora AND resultado.ddl_dh  
 data_hora   
 LOOP
 
 Alguém pode me ajudar!!
 



Verifique se o que você deseja fazer não é:

diameter := 0;
FOR resultado IN SELECT * from dado_lido where vei_id = 
codigosArena AND ddl_dh = data_hora;
LOOP
diameter := 12742000;
c := 90 - (resultado.ddl.lat[0]);
b := 90 - (resultado.ddl.lat[1]);
a := resultado.ddl.lat[0] - (resultado.ddl.lat[1]);
x := acos((cos(b) * cos(c)) + (sin(b) * sin(c) * cos(a)));
x := (PI * diameter * x) / 360;

tempogasto := resultado.ddl.lat[1] - resultado.ddl.lat[0];
velocidade := x/tempogasto;

IF (velocidade  150) THEN
DELETE FROM dado_lido WHERE vei_id = codigosArena AND 
ddl_dh = data_hora;
END IF;
END LOOP;

Osvaldo
___
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 SELECT

2007-11-06 Por tôpico Osvaldo Rosario Kussama
geison correia escreveu:
 Caros amigos, Eu tenho o seguinte trecho:
 
 SELECT current_time INTO data_hora;
 
   SELECT INTO codigosArena cd_veiculo_arena from t_veiculo;
   
   SELECT INTO resultado * from dado_lido where vei_id = codigosArena;
 
   WHILE resultado.dll_dh = data_hora
 LOOP
 
 Qdo executo da o seguinte erro:
 
 ERRO:  record resultado has no field dll_dh
 CONTEXT:  PL/pgSQL function filtro_de_velocidade line 24 at while
 
 OBS: eu salvei na variável resultado o conteúdo da tabela dado_lido, 
 correto?
 na tabela dado_lido existe a campo dll_dh onde guardamos data e hora.
 
 Ele diz que o Registro resultado não tem o campo dll_dh. Mas o
 resultado tem sim o campo dll_dh. Eu não posso acessar esse campo
 da tabela dado_lido dessa forma?
 


Creio que você deva declarar:
resultado dado_lido%ROWTYPE;
no lugar de:
resultado RECORD;

Veja:
http://www.postgresql.org/docs/8.2/interactive/plpgsql-declarations.html#PLPGSQL-DECLARATION-ROWTYPES
e
http://www.postgresql.org/docs/8.2/interactive/plpgsql-declarations.html#PLPGSQL-DECLARATION-RECORDS

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


Re: [pgbr-geral] como olho dentro dos bancos??

2007-11-01 Por tôpico Osvaldo Rosario Kussama
Murilo Bernardes escreveu:
 thiago.
 eu ja tinha feito isso , mas agora que eu me liguei, que foi na maquina 
 em que eu estava testando...
 fui popular a tabela e apareceu que entradas duplas eram proibidas...
 deve estar populada.
 mas ainda nao sei como eu oolho dentro dela
 


Se você acha que já criou o usuário do banco de dados e 
também acha que já populou a tabela faça o seguinte:
No terminal linux digite:

psql -U usuario_que_voce_cadastrou nome_do_banco

deverá aparecer algo como:

Bem vindo ao psql 8.2.3, o terminal iterativo do PostgreSQL.

Digite:  \copyright para mostrar termos de distribuição
  \h para ajuda com comandos SQL
  \? para ajuda com comandos do psql
  \g ou terminar com ponto-e-vírgula para executar a 
consulta
  \q para sair

No prompt digite:

SELECT * FROM sua_tabela;

Volto a insistir que você leia a documentação, pelo menos o 
tutorial:
http://pgdocptbr.sourceforge.net/pg80/tutorial-sql.html
no item 2.5. Consultar Tabelas está o que eu escrevi acima.


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


Re: [pgbr-geral] Selecionando dias uteis durante determinado periodo

2007-10-25 Por tôpico Osvaldo Rosario Kussama
Daniel Falcão escreveu:
 Olá,
 
 Após tentar vários recursos do PostgreSQL, consegui realizar o 
 procedimento através de uma função.
 Segue abaixo o código que utilzei:
 
 create or replace function diasUteis(pDataInicio date, pDataFim date) 
 returns integer
 as $_$ declare
 _cont integer;
 _proxData date;
 begin
 _proxData := pDataInicio;
 _cont := 0;
 
 while _proxData = pDataFim loop
 --se _proxData = fim de semana nao incremente _cont
 if (select extract(DOW from date_trunc('day',_proxData)) not 
 between 1 and 5) is false then
 
 --aqui faco uma checagem na minha tabela de 
 feriados/imprensados, se _proxData = feriado,
 --...
 
 _cont := _cont + 1;
 end if;
 
 --incremente _prox
 _proxData := _proxData + 1;
 end loop;
 return _cont;
 end $_$
 language 'plpgsql' volatile;
 
 --
 
 Grato pela atenção,
 Daniel Falcão
 
 On 10/24/07, *Daniel Falcão* [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED] wrote:
 
 Olá,
 
 Na realidade eu tenho uma tabela de feriados e imprensados, resolvi
 apenas
 simplificar a questão para ficar mais fácl o entendimento. Para
 saber se um
 determinado dia é sábado ou domingo, podemos usar o extract (DOW). :)
 
 Estou comecando a acreditar que o SQL nao oferece recursos para esse
 tipo
 de situacao, o melhor deve ser construir uma function em PL/PGSQL
 mesmo.
 
 []'s
 Daniel Falcão
 
 
 On 10/24/07, *sergio* [EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED] wrote:
 
 Não sei se você vai chegar aos 100% de dias uteis, pois existem
 os feriados
 municipais por exemplo e até mesmo dias em que a empresa possa
 vir a não
 trabalhar. Eu tive que fazer algo semelhante. Optei por fazer
 uma rotina que
 retornasse os sabados e domingos e o usuario indicasse
 manualmente quais os
 dias que não foram trabalhados.
 
 - Original Message -
 From: Dickson Guedes  [EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]
 To: Comunidade PostgreSQL Brasileira
 pgbr-geral@listas.postgresql.org.br
 mailto:pgbr-geral@listas.postgresql.org.br
 Sent: Wednesday, October 24, 2007 1:52 PM
 Subject: Re: [pgbr-geral] Selecionando dias uteis durante
 determinado
 periodo
 
 
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Daniel Falcão escreveu:
   Olá, (...) 03. Preciso saber justamente a quantidade de dias
 úteis
   do mês, mesmo que o indivíduo não tenha comparecido em nenhum dia
   (por exemplo, dias úteis no mês de 09/2007 = 20, no mês 10/2007 =
   23);
 
   PS: A função extract (DOW...) é bem interessante, estamos no
   caminho certo.
 E o que fazer com os feriados? Você vai manter isso também de alguma
 forma?
 


Só para constar aqui vai uma expressão SQL que fornece os 
dias úteis de um período. Considerei que existe uma tabela 
com o registro dos feriados e outros dias que não devem ser 
considerados (emendas, pontos facultativos, etc):

SELECT dia FROM
(SELECT ('2007-10-01'::date+s.a*'1 day'::interval) AS dia
   FROM generate_series(0, '2007-10-31'::date -
  '2007-10-01'::date, 1) AS s(a)) foo
  WHERE EXTRACT(DOW FROM dia) BETWEEN 1 AND 5
EXCEPT
SELECT dia FROM tab_feriado;

Osvaldo
___
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 Update

2007-10-25 Por tôpico Osvaldo Rosario Kussama
Evandro (GMAIL) escreveu:
 Boa tarde pessoal,
 preciso fazer um update em uma chave primária, mas isso esta causando 
 uma duplicação de chave
 se fosse em MySQL ou ORACLE poderia resolver usando um UPDATE com ORDER BY
 mas notei que o PostreSQL não tem este recurso
 existe algum forma de contornar este problema ?
 
 segue um exemplo simples para simular o erro
 
 CREATE TABLE teste
 (
   coluna1 integer NOT NULL,
   CONSTRAINT chaveprimaria PRIMARY KEY (coluna1)
 )
 WITHOUT OIDS;
 
 
 INSERT INTO teste(coluna1) VALUES (1);
 INSERT INTO teste(coluna1) VALUES (2);
 
 update teste set coluna1 = (coluna1 + 1)
 
 
 ERRO: duplicar chave viola a restrição de unicidade chaveprimaria
 SQL state: 23505
 
 


Tente:
UPDATE teste SET coluna1 = t_aux.coluna1+1
FROM (
 SELECT coluna1
   FROM teste
   ORDER BY coluna1 DESC
  ) t_aux
WHERE teste.coluna1 = t_aux.coluna1;

Osvaldo
___
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 Update

2007-10-25 Por tôpico Osvaldo Rosario Kussama
Evandro (GMAIL) escreveu:
 Osvaldo Rosario Kussama escreveu:
 Tente:
 UPDATE teste SET coluna1 = t_aux.coluna1+1
 FROM (
  SELECT coluna1
FROM teste
ORDER BY coluna1 DESC
   ) t_aux
 WHERE teste.coluna1 = t_aux.coluna1;

   
 Osvaldo
 Mesmo assim dá chave duplicada |
 mas valew pela tentativa !
 


No meu teste funcionou:

bdteste=# CREATE TEMP TABLE teste(coluna1 INTEGER PRIMARY 
KEY, coluna2 text);
NOTA:  CREATE TABLE / PRIMARY KEY criará índice implícito 
teste_pkey na tabela teste
CREATE TABLE

bdteste=# INSERT INTO teste(coluna1,coluna2) VALUES 
(1,'um'), (2,'dois'), (3,'três'), (4,'quatro'), (5,'cinco');
INSERT 0 5

bdteste=# SELECT * FROM teste;
  coluna1 | coluna2
-+-
1 | um
2 | dois
3 | três
4 | quatro
5 | cinco
(5 registros)

bdteste=# UPDATE teste SET coluna1 = t_aux.coluna1+1
FROM (
 SELECT coluna1
   FROM teste
   ORDER BY coluna1 DESC
  ) t_aux
WHERE teste.coluna1 = t_aux.coluna1;
UPDATE 5

bdteste=# SELECT * FROM teste;
  coluna1 | coluna2
-+-
6 | cinco
5 | quatro
4 | três
3 | dois
2 | um
(5 registros)

Osvaldo

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


Re: [pgbr-geral] Perguntinha simples sobre cálculo c om timestamp

2007-10-23 Por tôpico Osvaldo Rosario Kussama
Consultores Software escreveu:
  Boa tarde  pessoal !
  
  Alguém saberia me  dizer qual é a melhor forma de se obter a diferença 
 em minutos entre dois campos timestamp´s , sendo o resultado, um valor 
 inteiro  ( e não outro timestamp ) , como no exemplo :
  campo1 = '23/10/2007 09:55:29'
  campo2 = '23/10/2007 08:44:36'
  
 campo1 - campo2 = 71  ( em minutos )
  


bdteste=# SELECT extract(EPOCH from ('23/10/2007 
09:55:29'::timestamp - '23/10/2007 08:44:36'::timestamp))/60;
  ?column?
--
  70.88333
(1 registro)

bdteste=# SELECT (extract(EPOCH from ('23/10/2007 
09:55:29'::timestamp - '23/10/2007 
08:44:36'::timestamp))/60)::int;
  int4
--
71
(1 registro)

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


Re: [pgbr-geral] Numero da linha

2007-10-22 Por tôpico Osvaldo Rosario Kussama
Roberto Baselio Lopes escreveu:
 Pessoal, existe algum comando SQL puro que me retorne o numero da linha, 
 por exemplo
 
 Select numero da linha, código, nome from clientes
 


Se este numero da linha significa o número sequencial da 
linha retornada no SELECT tente:

CREATE TEMPORARY SEQUENCE num_linha;
SELECT nextval('num_linha') AS Num. Linha, codigo, nome
   FROM clientes
   WHERE ...critérios...
   ORDER BY codigo;
DROP SEQUENCE num_linha;

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


Re: [pgbr-geral] Select em 2 tabelas

2007-10-19 Por tôpico Osvaldo Rosario Kussama
Saulo escreveu:
 Tenho 2 tabelas de contas a receber e pagar. Como faço para fazer um 
 select pegando os valores das duas tabelas e jutando por data. Algo como 
 UNION porem os campos precisam ficar separados.
 
 Usei inner join, porem as duas tabelas precisam ter lançamentos com 
 datas iguais. Seria algo como:
 
  
 
 ReceberPagar
 
 19/10/07   100,00  50,00
 
 20/10/07   500,00  300,00
 
  


Use JOIN:
SELECT data_mov, SUM(rec.valor) AS Receber,
  SUM(pag.valor) AS Pagar
FROM tab_receber rec JOIN tab_pagar pag
   ON (rec.data_mov = pag.data_mov)
WHERE ...critérios...
GROUP BY data_mov
ORDER BY data_mov;

Verifique se, por acaso, um OUTER JOIN (LEFT, RIGHT ou FULL) 
não te atende melhor.

http://www.postgresql.org/docs/8.2/interactive/tutorial-join.html

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


Re: [pgbr-geral] função executada em determinado t empo

2007-10-19 Por tôpico Osvaldo Rosario Kussama
Emanoel Tadeu escreveu:
 bem irei procurar algo a respeito decomo ver esse agendamento com 
 relação ao postgre.
 


Parece que você está utilizando o PostgreSQL (ou postgres) 
no MS-Windows.

Caso tenha o PgAdmin verifique se o PgAgent atende ou agende 
a execução do comando:
psql -U usuario -d nomebd --command 'SELECT sua_função();'

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


Re: [pgbr-geral] Diferença na estrutura de 2 bancos

2007-10-18 Por tôpico Osvaldo Rosario Kussama
Rafael Garbin escreveu:
 Eu recomendo dar um dump da estrutura e fazer um kompare dos dois, pq 
 essa ferramanta ja me indicarao e eu nao achei muita coisa sobre ela.
 
 Em 18/10/07, *Guilherme Augusto da Rocha Silva * 
 [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED] escreveu:
 
 Olá,
 
 procure por uma ferramenta chamada pgdiff nos projetos da PgFoundry
 (www.pgfoundry.org http://www.pgfoundry.org).
 
 Ou, como disse o Pablo, use o comando diff comparando os arquivos
 com dados de
 cada banco. Os arquivos podem conter o SQL da estrutura (gerado com
 pg_dump -s) ou dados de estutura consultados diretamente no catálogo dos
 bancos.
 
 Abraço.
 
   Date: Thu, 18 Oct 2007 08:08:15 -0300
   From:  Pablo Sánchez  [EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]
   Subject: Re: [pgbr-geral] Diferença na estrutura de 2 bancos
  
   hummm
  
   Gerar o script sql e rodar um diff? :-P
  
   Em 18/10/07, sergio[EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED] escreveu:
Bom Dia.
Há alguma maneira prática para que eu compare 2 bancos e
 verifique quais
os triggers, campos, tabelas, etc que há no primeiro e não se
 encontram
no segundo?
 


Dê uma olhada nesta outra ferramenta:
http://apgdiff.sourceforge.net/

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


Re: [pgbr-geral] foreign keys

2007-10-17 Por tôpico Osvaldo Rosario Kussama
Mauricio De Biasi escreveu:
 Pessoal,
  
 È possivel fazer foreign keys entre dois bancos postgre ?  que nem se 
 faz com o Mysql ?
  
 MYSQL: ALTER TABLE tabela ADD FOREIGN KEY (id) REFERENCES 
 banco_y.tabela_y(id); 
  


Entre dois bancos de dados não é possível, mas entre dois 
esquemas num mesmo banco é. Veja:
http://www.postgresql.org/docs/8.2/interactive/ddl-schemas.html

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


Re: [pgbr-geral] Acesso remoto (post versão 7.4 )

2007-10-09 Por tôpico Osvaldo Rosario Kussama
Paulinha escreveu:
 Pessoal,
 Estou com uma dúvida
 Quero usar o EMS, mas esto ucom um problema de acesso, quando coloco o 
 ip do servidor e tento conectar, ele mostra o seguinte erro:
 
 could not connect to server: connection refused. Is the server running 
 on host 10.255.255.175
 and accepting TCP/IP connections on port 5432?
 
 
 Já mudei o tcpip_socket = true
 
 e no hba.conf  está assim:
 # TYPE  DATABASEUSERIP-ADDRESSIP-MASK   METHOD
 #local   all all 
 ident sameuser
 host all all 10.255.255.182  255.255.255.255  md5
 host all all 10.255.255.154  255.255.255.255  md5
 host all all 127.0.0.1
 255.255.255.255 md5
 # IPv4-style local connections:
 host   all all   10.255.255.0/24   255.255.255.0   md5
 hostall all   127.0.0.1 
 255.255.255.255   md5
 
 # IPv6-style local connections:
 hostall all ::1   
 :::::::md5
 


Veja as dicas do Rodrigo Hjort:
http://icewall.org/~hjort/pgsql/naoconecta.htm

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


Re: [pgbr-geral] Conversão de Tipos

2007-10-09 Por tôpico Osvaldo Rosario Kussama
Joao Marcelo escreveu:
 
 Estou utilizando o Postgres versão 7.4.16 no Slackware Linux 12.
 Gostaria de saber se é possível converter a data retornada pela função
 now() de timestamp with time zone para timestamp without time zone.
 


Talvez seja o caso de utilizar LOCALTIMESTAMP no lugar de now().
http://www.postgresql.org/docs/7.4/interactive/functions-datetime.html

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


Re: [pgbr-geral] Dificuladade para Acessar o Forum

2007-10-08 Por tôpico Osvaldo Rosario Kussama
sergio escreveu:
  
 Estou tentando participar do forum, mas estou encontrando
  dificuldades. Criei o meu usuario [EMAIL PROTECTED], recebi
  o email de confirmação. Até este ponto está Ok. Mas quando acesso o
  link http://www.nabble.com/PostgreSQL---Brasil-f15652.html, e tento
  postar nova mensagem, ele pede meu usuario e senha. Nesse momento
  minha senha ou usuario não sao aceitos. Estou recebendo em meu email
  as perguntas do forum. Penso que talvem tenha me autenticado somente
  na lista e não no forum.
  


Aparentemente você se inscreveu nesta lista já que está 
recebendo as mensagens.
Só para confirmar você foi em
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
e se inscreveu, correto?

Neste caso para enviar uma questão é só enviar uma mensagem 
para o e-mail: pgbr-geral@listas.postgresql.org.br

Para utilizar o nabble (que é um agregador de mensagens) 
você tem que se inscrever no nabble e fazer o login quando 
quiser enviar uma mensagem.

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


Re: [pgbr-geral] Duvida no Access

2007-10-03 Por tôpico Osvaldo Rosario Kussama
Roberto Baselio Lopes escreveu:
 Ola Pessoal so não zuem aminha cara por Access Estou com o Seguinte 
 Problema, Quando execulto essa Consulta
 
 SELECT *
 FROM movimento
 WHERE data=#02/10/2007#;
 
 Ele não me Retorna Nada, Mesmo Existindo no Banco Registros do Dia 
 02/10/2007,
 
 Agora se eu Coloco
 
 SELECT *
 FROM movimento
 WHERE data=#29/09/2007#;
 
 Ele Retorna Certinho!!
 
 O Mesmo Problema Ocorre com o Between por Exemplo.. se Coloco
 
 SELECT *
 FROM movimento
 WHERE data Between #20/09/2007# and #02/10/2007#;
 
 Ele da Pau e Não retorna nada... Agora se Coloco
 
 SELECT *
 FROM movimento
 WHERE data Between #20/09/2007# and #10/10/2007#;
 
 Ele Funciona! O que Estou Fazendo Errado!? Conto com a Ajuda de Vocês 
 Colegas!!
 


Em primeiro lugar: esta é uma lista sobre PostgreSQL, sua 
dúvida deveria, pelo menos, conter um off-topic. Acho que 
existem listas sobre MS-Access onde, creio, sua dúvida 
poderia ser mais facilmente esclarecida.

Chute: verifique se não é o problema de interpretação da 
data (dia/mês/ano ou mês/dia/ano).

Caso tenha qualquer dúvida sobre PostgreSQL sinta-se a 
vontade em colocá-la nesta lista que, certamente, contará 
com nossa boa vontade.

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


Re: [pgbr-geral] Duvida numa trigger

2007-10-01 Por tôpico Osvaldo Rosario Kussama
Roberto Baselio Lopes escreveu:
 Mas eu preciso soma-lo nos meses e não nos dias
 
 Em 01/10/07, *José Mello Júnior* [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED] escreveu:
 
 NEW.datavenc := to_date(NEW.datacal, 'DD Mon ')+i ;
 
 
 Em 30/09/07, *Roberto Baselio Lopes* [EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED] escreveu:
 
 Conforme abaixo, possuo uma trigger onde desejo somar i que
 busca o prazo da validade em outra tabela no datacal para
 atualiza o datavenc, mas não sei como faze-lo, alguém poderia me
 ajudar?
 
 a propósito estou usando o formato de data 'sql, DMY'
 
 
 CREATE FUNCTION hist_venc() RETURNS trigger AS $hist_venc$
 DECLARE
  i integer;
 
 
 BEGIN
 Select INTO i instrumentos.prazo from instrumentos where
 instrumentos.codinstr=new.codinstr;
 NEW.datavenc := NEW.datacal+i ;
 RETURN NEW;

 END;
 $hist_venc$ LANGUAGE plpgsql;
 


Você quer dizer que i é a quantidade de meses?
Supondo que datavenc e datacal sejam campos do tipo date use:
NEW.datavenc := NEW.datacal + i*'1 month'::interval;

Osvaldo

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


Re: [pgbr-geral] Atualizar todos os registros de uma tabela por outra

2007-10-01 Por tôpico Osvaldo Rosario Kussama
Ribamar Sousa escreveu:
 Em 28/09/07, Leandro DUTRA[EMAIL PROTECTED] escreveu:
 UPDATE servicos s SET custo = total FROM composicoes c WHERE s.tabela
 = c.tabela AND s.servico = c.servico

 Atualizou beleza sem precisar do PHP.
 Chegastes a comparar o tempo?  Imagino que o UPDATE tenha sido muito
 mais rápido que o PHP.

 
 Não tenho como testar na situação real, pois não tenho servidor de
 teste e não tive coragem de testar valendo. Tanto com o PHP quanto
 pelo SQL apenas testei com 4 registros.
 
 Mas pela lógica direta via SQL é mais rápido.
 
 Cada vez que vamos aprendendo a mexer com SQL percebemos a força dessa
 linguagem. Muita força mesmo. Normalmente faz-se muita coisa com pouca
 programação. E olhe que não estou falando em funções armazenadas, mas
 somente em SQL.
 


Apenas uma observação.
Em uma mensagem anterior você disse que:
As tabelas reais têm relacionamento 1 (servicos) para N 
(composições) e tem mais campos.
Portanto estas duas tabelas não podem ter a mesma chave 
primária (caso contrário o relacionamento seria 1:1).

Reveja então seu modelo e, se for efetivamente 1:N, 
especifique qual dos registros de composicoes (daqueles 
relacionados a uma ocorrência de servicos) você irá utilizar 
para atualizar o campo custo de servicos (Qualquer um? O 
mais antigo? O mais novo? Outro critério?).

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


Re: [pgbr-geral] Tempo de duração

2007-10-01 Por tôpico Osvaldo Rosario Kussama
Fernando Brombatti escreveu:
 Tem como saber todos os querys que foram executados no banco de dados e 
 o respectivo tempo de duração?
 
 Se há, como faço isso. O que precisa estar habilitado no postgresql.conf 
 e onde acho as informações?
 


Veja na documentação:
http://www.postgresql.org/docs/8.2/interactive/runtime-config-logging.html
Where To Log, When To Log e What To Log.
Neste último veja: log_duration e log_statement.

Tendo o log gerado verifique se o pgFouine te ajuda:
http://pgfouine.projects.postgresql.org/

Osvaldo
___
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 para importar o banco

2007-09-25 Por tôpico Osvaldo Rosario Kussama
Leandro Diniz Soares escreveu:
 Desculpem a insistência... Será que algum amigo poderia me ajudar?
 Agradeço desde já...
 
 
 
 Em 25/09/07, Leandro Diniz Soares[EMAIL PROTECTED] escreveu:
 (Desculpem-me... enviei a 1º vez sem alterar o assunto)

 Senhores,

 Uma pergunta de iniciante... Criei localmente o banco e mando exportar...
 Ele gera o SQL do banco...

 Entrei no meu servidor pelo phpPgAdmin...

 Quando tento executar o SQL para a importação dá p seguinte erro:

 Erro de SQL:

 ERROR:  must be superuser to create procedural language

 Indicação de entrada :

 -- SQL Manager 2007 for PostgreSQL 4.1.0.1
 -- ---
 -- Host  : localhost
 -- Database  : livraria
 -- Version   : PostgreSQL 8.2.4 on i686-pc-mingw32, compiled by GCC
 gcc.exe (GCC) 3.4.2 (mingw-special)


 --
 -- Definition for language plpgsql (OID = 16386) :
 --
 CREATE TRUSTED PROCEDURAL LANGUAGE plpgsql
   HANDLER plpgsql_call_handler
 ;
 --
 -- Structure for table autor (OID = 16429) :
 --

 Não sei o que fazer... fui em Privilégios-Concede-Escolhi o usuário
 e marquei tudo... E nada...
 Grupos PUBLIC
 Privilégios CREATE
TEMPORARY
ALL PRIVILEGES
 Options GRANT OPTION



 O que fazer???



Ele já informou o que fazer:
ERROR:  must be superuser to create procedural language
portanto conecte-se utilizando o superusuário do banco de 
dados (normalmente é o postgres) e não um usuário comum.

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


Re: [pgbr-geral] Preciso de um help com o pg_restore

2007-09-24 Por tôpico Osvaldo Rosario Kussama
Consultores Software escreveu:
  
 Estou testando o comando pg_restore para restaurar um banco de dados no 
 XP, mas
 ao executá-lo, o cursor do prompt do dos fica piscando na linha 
 seguinte, e nada acontece com o banco de dados.
  
 Alguém saberia me dizer o que está acontecendo e como corrigir isto ?
  
 Comandos enviados :
  
 C:\testeset pgpassword=minhasenha
 
 C:\testeC:\Arquivos de programas\PostgreSQL\8.1\bin\pg_restore.exe -h 
 local
 host -U usuario -d bancodedados  -i
 


Se este for exatamente o comando que está utilizando então 
está faltando o arquivo de onde restaurar (gerado pelo pg_dump).

Osvaldo
___
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. DBLINK.

2007-09-21 Por tôpico Osvaldo Rosario Kussama
Paulo escreveu:
 Olá pessoal,
  
 Preciso habilitar o módulo contrib DBLink no meu banco.
 Qual comando devo utilizar ?
  


Veja no diretório contrib/dblink o arquivo README.dblink.
Leia particularmente o item Installation.

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


Re: [pgbr-geral] Enderecamento

2007-09-19 Por tôpico Osvaldo Rosario Kussama
Joao escreveu:
 da uma procurada leandro, faz um pra dois anos aqui na lista e deu pra 
 funcionar legal mesmo!
 - Original Message - 
 From: Leandro DUTRA [EMAIL PROTECTED]
 To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
 Sent: Wednesday, September 19, 2007 12:02 PM
 Subject: Re: [pgbr-geral] Enderecamento
 
 
 2007/9/19, Joao [EMAIL PROTECTED]:
 soundex so funciona em ingles
 
 Não é bem aßim, foi criado em inglês mas dependendo pode quebrar o galho.
 
 
 mas vi uma implementação crio no ano passado
 q ate quebrou o galho em pt_BR
 
 Oba oba, ponteiros?
 


Esta no anexo da mensagem:
http://www.nabble.com/forum/ViewPost.jtp?post=6832880framed=y

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


Re: [pgbr-geral] criando funcao

2007-09-11 Por tôpico Osvaldo Rosario Kussama
Vinicius escreveu:
 Evandro eu ja tentei desta forma mas dai tenho outro problema em POINT, me 
 retorna uma msg de erro qndo executo dizendo q nao existe POINT com 
 argumento numero,, mas estou passando string e nao numeric.
 
 - Original Message - 
 From: Evandro Ricardo Silvestre [EMAIL PROTECTED]
 To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
 Sent: Tuesday, September 11, 2007 10:14 AM
 Subject: Re: [pgbr-geral] criando funcao
 
 
 Vinicius,
 
 Você tem q concatenar em uma string e executá-la com EXECUTE.
 
 Algo assim:
 
 sSql := 'SELECT INTO RsDis cidade, estado, bairro, logradouro
   FROM ' || cidades_pr || ' where .
 EXECUTE sSql;
 
 Essa é a unica forma de alterar a tabela que vai executar.
 
 SDS
 
 Evandro
 
 Vinicius wrote:
 Ola pessoal...

 Tenho uma funcao que preciso passar pro sql qual tabela quero usar,, mas 
 nao
 estou conseguindo fazer,, segue a funcao abaixo:

 onde esta cidades_pr qro substiruir pelo parametro tabela

 CREATE OR REPLACE FUNCTION public.pega_logradouro (lat varchar, long
 varchar, tabela varchar) RETURNS varchar AS
 $body$
 declare
   RsDis Record;
 begin

   SELECT INTO RsDis cidade, estado, bairro, logradouro
   FROM cidades_pr
   where
   Distance(the_geom, GeomFromText( 'POINT(' || $2 || ' ' || $1 ||
 ')', -1 ))*1 = (select Distance(the_geom, GeomFromText( 'POINT(' || $2 || 
 '
 ' || $1 || ')', -1 ))*1 as dif from cidades_pr where Distance(the_geom,
 GeomFromText( 'POINT(' || $2 || ' ' || $1 || ')', -1 ))*1 = 0.3 order by
 dif limit 1 )
   limit 1;

 RETURN RsDis.cidade || ',' || RsDis.estado || ',' || RsDis.bairro 
 ||
 ',' || RsDis.logradouro;

 end;



Veja 37.2.1. Handling of Quotation Marks em:
http://www.postgresql.org/docs/8.2/interactive/plpgsql-development-tips.html
e EXECUTE em:
http://www.postgresql.org/docs/8.2/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

...
x := 'SELECT INTO RsDis cidade, estado, bairro, logradouro
   FROM cidades_pr
   WHERE
   Distance(the_geom, GeomFromText( ''POINT(' || $2 || ' ' || $1 || 
')'', -1 ))*1 = (SELECT Distance(the_geom, GeomFromText( ''POINT(' || $2 
|| ' ' || $1 || ')'', -1 ))*1 as dif FROM cidades_pr WHERE 
Distance(the_geom,
GeomFromText( ''POINT(' || $2 || ' ' || $1 || ')'', -1 ))*1 = 0.3 ORDER BY
dif LIMIT 1 )
   LIMIT 1;';

EXECUTE x;
...

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


Re: [pgbr-geral] script pg_dump

2007-09-11 Por tôpico Osvaldo Rosario Kussama
saulo Mendes escreveu:
  
 Pessoal,
  
 sou novato no postgres e estou precisando montar um aplicativo (em 
 delphi) para o cliente fazer manualmente o backup apenas dos dados do banco.
  
 daí utilizei o winex do delphi para gerar o comando:
  
 * WinExec(pchar('cmd /C pg_dump -U postgres -d '+cdsd_database.asstring+
' -d -a  '+de.text+'\bkp_'+
formatdatetime('ddmmhhmmss',now)+'.sql'), SW_show);*
  
 esse procedimento só funciona se o arquivo *pg_hba.conf* estiver com o 
 metodo trust
  
 # TYPE  DATABASEUSERCIDR-ADDRESS  METHOD
 # IPv4 local connections:
 hostall all 127.0.0.1/32  *trust*
  
 ...mas com isso meu banco fica totalmente *vulnerável*.
  
  
 se for possível, gostaria de um script exemplo(utilizo windows 2003 
 server) para poder atribuir as variáveis de usuário e password. Já dei 
 uma olhada na documentação mas, infelizmente não consegui ainda.
  


Veja a variável de ambiente PGPASSWORD em:
http://www.postgresql.org/docs/8.2/interactive/libpq-envars.html
ou
o arquivo pgpass.conf em:
http://www.postgresql.org/docs/8.2/interactive/libpq-pgpass.html

Procure no histórico da lista pois este tópico já foi discutido varias 
vezes.

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


Re: [pgbr-geral] Function com erro em comando Execute.

2007-09-05 Por tôpico Osvaldo Rosario Kussama
Paolo Pinheiro escreveu:
 
 Estou usando o comando execute dentro de uma function, o mesmo faz um 
 insert em uma tabela com 3 campos. Quando o insert é em 2 campos varchar 
 not null funciona, quando é adicionado um campo numeric que pode ser 
 null não funciona mais..
 
 FOR todos_servicos IN
 SELECT distinct serv_codigo, serv_descricao, serv_tempopadrao, 
 serv_precohora FROM servicos ORDER BY serv_codigo
 LOOP
 -- Com os campos serv_codigo e serv_descricao roda.
 EXECUTE ' INSERT INTO temp_servicos ( serv_codigo , 
 serv_descricao ) VALUES ( '
  || quote_literal(todos_servicos.serv_codigo) || 
 ' , ' || quote_literal(todos_servicos.serv_descricao) ||  ' ); ';
 -- Adicionando o campo serv_precohora não roda mais.
 EXECUTE ' INSERT INTO temp_servicos ( serv_codigo , 
 serv_descricao , serv_precohora ) VALUES ( '
  || quote_literal(todos_servicos.serv_codigo) || 
 ' , ' || quote_literal(todos_servicos.serv_descricao) || ' , '   
|| todos_servicos.serv_precohora ||
 ' ); ';
 
 END LOOP;
 


Se você quer dizer que quando o campo todos_servicos.serv_precohora é 
nulo o string resultante também é nulo então este é exatamente o 
comportamento esperado.
Em uma concatenação se qualquer dos elementos sendo concatenados for 
NULL então o resultado é NULL. (ver manual)

Tente:
...
' , ' || quote_literal(todos_servicos.serv_descricao) || ' , '
   || coalesce(todos_servicos.serv_precohora, 'NULL') ||
 ' ); ';

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


Re: [pgbr-geral] Lançamento Contábil

2007-08-29 Por tôpico Osvaldo Rosario Kussama
Júlio Catardo escreveu:
 Pessoal, bom dia
  
  
 alguém tem algum exemplo de procedimento ou alguma dica de como 
 recuperar lancamentos contabéis de forma hierárquica ???
  
  
 Ex :
  
 1.1 - Ativo  - VR$ 999,99
 1.1.1 - X  - VR$ 999,99
 1.1.1.1 - X -  - VR$ 999,99
 1.1.1.1.1 - X -  - VR$ 999,99
 
 Tenho uma tabela com as contas contábeis e outra com os lançamentos 
 detalhados.
  


Procure por connectby em contrib/tablefunc e verifique se é passível de 
utilização em seu caso.

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


<    1   2   3   >