Re: [pgbr-geral] Indicar o Indíce
[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
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
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
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?
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?
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 ??
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
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.
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
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
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
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
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?
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?
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
[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
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
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
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
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
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
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
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
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
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
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
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.
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?
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?
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)
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.
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?
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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??
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
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
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
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
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
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
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
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
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
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 )
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
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
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
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
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
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
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
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
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.
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
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
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
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.
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
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