[pgbr-geral] Consulta Select
Salve, Salve Galera! Minha dúvida é a seguinte ... Estou utilizando o PostgreSQL 9.1.2 e estou desenvolvendo uma aplicação em Java para Clínicas Veterinárias. Criei uma tela só para cadastrar o prontuário de cada paciente. Existem 3 tabelas que estão diretamente interligadas (uma que cadastra o prontuário propriamente dito, uma que cadastra o tipo de atendimento (Consulta, Banho/Tosa, Vacinação, etc) e o código do prontuário, outra que cadastra as consultas) A tabela consultas se relaciona com outras 2 tabelas: anamnese e prescrição. No programa a gravação dos dados em cada uma das tabelas (Consulta, Anamnese e Prescrição) é independente. Quando o usuário seleciona uma linha na tabela consultas os dados referentes à anamnese e prescrição são mostrados em suas respectivas abas (ainda não está funcionando). Para gerar uma anamnese ou prescrição é necessário haver uma consulta já cadastrada. Meu problema é que não estou conseguindo recuperar as informações do banco de dados com a query abaixo, pois as outras tabelas (anamnese prescrição) ainda estão vazias. como devo tratar esses campos para a query me retornar os campos que possuem algum dado gravado? A query que estou utilizando é a seguinte String sql = select c.id as codconsulta, c.codveterinario as codveterinario, c.data as data, + c.flg_reconsulta as flg_reconsulta, c.data_referencia as data_referencia, + p.id as codprescricao, p.prescricao as prescricao, + f.nome as nome, a.hist_pass as hist_pass, a.hist_atual as hist_atual, + a.queixa_pri as queixa_pri, a.sinto_pri as sinto_pri, a.queixa_sec as queixa_sec, + a.sinto_sec as sinto_sec, a.out_pat as out_pat, a.int_ant as int_ant, + a.med_uso as med_uso, a.alergias as alergias, a.susp_diag as susp_diag, + a.prognostico as prognostico, a.diagnostico as diagnostico, a.alt_lab as alt_lab, + a.dieta as dieta, a.acompanhamento as acompanhamento, a.conduta as conduta, + a.recomendacao as recomendacao, a.tratamento as tratamento, a.evolucao as evolucao + from consultas c, anamnese a, prescricoes p, veterinarios v, funcionarios f + where c.id = a.codconsulta and c.id = p.codconsulta and + c.codveterinario = v.id and v.codfuncionario = f.id + and c.codprontuario = + tfNumProntuario.getText(); Se ignoro os campos que não possuem dados a consulta mostra o resultado das tabelas consultas e funcionarios (nome). Obrigado. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Dúvida! Query com BUG!
Bom dia Pessoal, utilizo a seguinte query abaixo para montar um relatório no iReport para meu programa ... - select distinct unidade, estado, extract(year from data) as ano, extract(month from data) as mes, sum(vendas) as atendimentos from( select distinct nom_filial as unidade, est_filial as estado, (dat_emissao) as data, count(dat_emissao) as vendas from cadcvend, cadfilia where cadfilia.cod_filial = cadcvend.cod_filial and flg_excluido is null and num_nf is null and extract(year from dat_emissao) between $P{ano_ini} and $P{ano_fim} and extract(month from dat_emissao) between $P{mes_ini} and $P{mes_fim} group by dat_emissao, nom_filial, est_filial order by dat_emissao) as registro where extract(year from data) between $P{ano_ini} and $P{ano_fim} and extract(month from data) between $P{mes_ini} and $P{mes_fim} group by extract(year from data), extract(month from data), unidade, estado order by extract(year from data), extract(month from data) - ... onde os parâmetros $P{ano_ini}, $P{ano_fim}, $P{mes_ini} e $P{mes_fim} são passados pelo programa com DOUBLE e na configuração dos parâmetros no relatório eu os declaro assim - new Double(valor). O relatório funciona perfeitamente, se for considerado um período entre os meses de 1 a 12 dentro do mesmo ano ou se for considerado todos os meses de vários anos, mesmo o ano não tendo acabado ainda. Para minha surpresa, estava realizando alguns teste no programa e percebi o seguinte bug: considerando o mês inicial = 1, o ano inicial = 2005, o mês final = 5 e o ano final = 2006 (por exemplo), o relatório rea montado da seguinte forma ... Ano MêsAtendimentos 2005 1xxx 2005 2xxx 2005 3xxx 2005 4xxx 2005 5xxx 2006 1xxx 2006 2xxx 2006 3xxx 2006 4xxx 2006 5xxx ... pulando os meses 6 a 12 do ano de 2005 (por exemplo). Em um fórum do GUJ fui orientado a modificar minha query da seguinte forma ... - select distinct unidade, estado, extract(year from data) as ano, extract(month from data) as mes, sum(vendas) as atendimentos from( select distinct nom_filial as unidade, est_filial as estado, (dat_emissao) as data, count(dat_emissao) as vendas from cadcvend, cadfilia where cadfilia.cod_filial = cadcvend.cod_filial and flg_excluido is null and num_nf is null and extract(year from dat_emissao) || extract(month from dat_emissao) between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim} group by dat_emissao, nom_filial, est_filial order by dat_emissao) as registro where extract(year from dat_emissao) || extract(month from dat_emissao) between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim} group by extract(year from data), extract(month from data), unidade, estado order by extract(year from data), extract(month from data) - ... que resolveu meu problema em parte, pois dessa forma pega todos os meses do intervalo de ano selecionado, mas no último ano, se ainda não tiver sido concluído (exemplo 2013) ele pega apenas o 1º e o último mês do intervalo, pulando todos os outros meses do ano, mas se considerar apenas o ano de 2013 e os meses de 1 a 10, o relatório sai correto, ou se considerar apenas anos que já foram concluídos, ou então, sempre considerar o mês inicial = 1 e o mês final = 12. Existe alguma forma de juntar o que está dando certo no 1º relatório com o que está dando certo no 2º relatório? As sugestões serão bem vidas! Obrigado aos que puderem me dar essa ajuda ASS Ramiro Pamponet ___ 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! Query com BUG!
Mathues, você é o cara!!! Valeu mesmo pela dica. Funcionou beleza!! Foi um erro de principiante mesmo!!! Mas eu nem sou programador profissional!! Faço mais como hobby e porque gosto mesmo! Tudo que aprendi sobre Lógica, Java, SQL, PostgreSQL e iReport foi pela Net em apostilas e vídeo aulas. Graças a pessoas como vc, em fóruns de discussão sobre esses assuntos que eu adquiro mais conhecimentos. Minha formação profissional é de Farmacêutico-Bioquímico. Esse relatório faz parte de um programinha que desenvolvi para o meu trabalho, para facilitar a minha vida e a dos meus colegas farmacêuticos, com a finalidade de levantar os atendimentos diários, mensais e anuais, uma estatística de receitas atendidas por dia, mês e ano (SUS e Particular), análise percentual (SUS x Particular) por Período, Máximo e Mínimo de Atendimentos por Período, pois o sistema que possuímos na farmácia, apensar de capturar essas informações, não apresenta nenhum relatório para mostrá-las, sendo que essa coleta de informação antes era realizada manualmente em uma planilha e compilada no fim do mês para ser enviada à matriz. um grande abraço Em 30 de outubro de 2013 12:16, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2013/10/30 Ramiro Pamponet roli...@oi.com.br Bom dia Pessoal, utilizo a seguinte query abaixo para montar um relatório no iReport para meu programa ... - select distinct unidade, estado, extract(year from data) as ano, extract(month from data) as mes, sum(vendas) as atendimentos from( select distinct nom_filial as unidade, est_filial as estado, (dat_emissao) as data, count(dat_emissao) as vendas from cadcvend, cadfilia where cadfilia.cod_filial = cadcvend.cod_filial and flg_excluido is null and num_nf is null and extract(year from dat_emissao) between $P{ano_ini} and $P{ano_fim} and extract(month from dat_emissao) between $P{mes_ini} and $P{mes_fim} group by dat_emissao, nom_filial, est_filial order by dat_emissao) as registro where extract(year from data) between $P{ano_ini} and $P{ano_fim} and extract(month from data) between $P{mes_ini} and $P{mes_fim} group by extract(year from data), extract(month from data), unidade, estado order by extract(year from data), extract(month from data) - ... onde os parâmetros $P{ano_ini}, $P{ano_fim}, $P{mes_ini} e $P{mes_fim} são passados pelo programa com DOUBLE e na configuração dos parâmetros no relatório eu os declaro assim - new Double(valor). O relatório funciona perfeitamente, se for considerado um período entre os meses de 1 a 12 dentro do mesmo ano ou se for considerado todos os meses de vários anos, mesmo o ano não tendo acabado ainda. Para minha surpresa, estava realizando alguns teste no programa e percebi o seguinte bug: considerando o mês inicial = 1, o ano inicial = 2005, o mês final = 5 e o ano final = 2006 (por exemplo), o relatório rea montado da seguinte forma ... Ano MêsAtendimentos 2005 1xxx 2005 2xxx 2005 3xxx 2005 4xxx 2005 5xxx 2006 1xxx 2006 2xxx 2006 3xxx 2006 4xxx 2006 5xxx ... pulando os meses 6 a 12 do ano de 2005 (por exemplo). O seu erro nesse caso é considerar a parte de mês - EXTRACT(MONTH FROM data) - e ano - EXTRACT(YEAR FROM data) - de forma independente, e não uni-los numa mesma verificação. Em um fórum do GUJ fui orientado a modificar minha query da seguinte forma ... - select distinct unidade, estado, extract(year from data) as ano, extract(month from data) as mes, sum(vendas) as atendimentos from( select distinct nom_filial as unidade, est_filial as estado, (dat_emissao) as data, count(dat_emissao) as vendas from cadcvend, cadfilia where cadfilia.cod_filial = cadcvend.cod_filial and flg_excluido is null and num_nf is null and extract(year from dat_emissao) || extract(month from dat_emissao) between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim} group by dat_emissao, nom_filial, est_filial order by dat_emissao) as registro where extract(year from dat_emissao) || extract(month from dat_emissao) between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim} group by extract(year from data), extract(month from data), unidade, estado order by extract(year from data), extract(month from data) - ... que resolveu meu problema em parte, pois dessa
Re: [pgbr-geral] Dúvida! Query com BUG!
Obrigado pela dica Osvaldo. Na verdade a 1ª query é apenas para montar o cabeçalho do relatório e organizar as informações capturada na 2ª query select distinct unidade, estado, extract(year from data) as ano, extract(month from data) as mes, sum(vendas) as atendimentos from( ...) as registro where extract(year from dat_emissao) || extract(month from dat_emissao) between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim} group by extract(year from data), extract(month from data), unidade, estado order by extract(year from data), extract(month from data) A 2ª query é para levantar as informações para montar o relatório propriamente dido select distinct nom_filial as unidade, est_filial as estado, (dat_emissao) as data, count(dat_emissao) as vendas from cadcvend, cadfilia where cadfilia.cod_filial = cadcvend.cod_filial and flg_excluido is null and num_nf is null and extract(year from dat_emissao) || extract(month from dat_emissao) between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim} group by dat_emissao, nom_filial, est_filial order by dat_emissao A sugestão do Matheus caiu como uma luva. Achei a sua um pouco mais complicada, mas vou testá-la também. Em 30 de outubro de 2013 12:37, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 30/10/13, Ramiro Pamponetroli...@oi.com.br escreveu: Bom dia Pessoal, utilizo a seguinte query abaixo para montar um relatório no iReport para meu programa ... - select distinct unidade, estado, extract(year from data) as ano, extract(month from data) as mes, sum(vendas) as atendimentos from( select distinct nom_filial as unidade, est_filial as estado, (dat_emissao) as data, count(dat_emissao) as vendas from cadcvend, cadfilia where cadfilia.cod_filial = cadcvend.cod_filial and flg_excluido is null and num_nf is null and extract(year from dat_emissao) between $P{ano_ini} and $P{ano_fim} and extract(month from dat_emissao) between $P{mes_ini} and $P{mes_fim} group by dat_emissao, nom_filial, est_filial order by dat_emissao) as registro where extract(year from data) between $P{ano_ini} and $P{ano_fim} and extract(month from data) between $P{mes_ini} and $P{mes_fim} group by extract(year from data), extract(month from data), unidade, estado order by extract(year from data), extract(month from data) - ... onde os parâmetros $P{ano_ini}, $P{ano_fim}, $P{mes_ini} e $P{mes_fim} são passados pelo programa com DOUBLE e na configuração dos parâmetros no relatório eu os declaro assim - new Double(valor). O relatório funciona perfeitamente, se for considerado um período entre os meses de 1 a 12 dentro do mesmo ano ou se for considerado todos os meses de vários anos, mesmo o ano não tendo acabado ainda. Para minha surpresa, estava realizando alguns teste no programa e percebi o seguinte bug: considerando o mês inicial = 1, o ano inicial = 2005, o mês final = 5 e o ano final = 2006 (por exemplo), o relatório rea montado da seguinte forma ... Ano MêsAtendimentos 2005 1xxx 2005 2xxx 2005 3xxx 2005 4xxx 2005 5xxx 2006 1xxx 2006 2xxx 2006 3xxx 2006 4xxx 2006 5xxx ... pulando os meses 6 a 12 do ano de 2005 (por exemplo). Em um fórum do GUJ fui orientado a modificar minha query da seguinte forma ... - select distinct unidade, estado, extract(year from data) as ano, extract(month from data) as mes, sum(vendas) as atendimentos from( select distinct nom_filial as unidade, est_filial as estado, (dat_emissao) as data, count(dat_emissao) as vendas from cadcvend, cadfilia where cadfilia.cod_filial = cadcvend.cod_filial and flg_excluido is null and num_nf is null and extract(year from dat_emissao) || extract(month from dat_emissao) between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim} group by dat_emissao, nom_filial, est_filial order by dat_emissao) as registro where extract(year from dat_emissao) || extract(month from dat_emissao) between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim} group by extract(year from data), extract(month from data), unidade, estado order by extract(year from data), extract(month from data) - ... que resolveu meu problema em parte, pois dessa forma pega todos os meses do
Re: [pgbr-geral] Fwd: SQL
Bom dia Pessoal, Expandindo um pouco mais a minha consulta, para incluir os atendimentos anteriores a 2009, quando o campo flg_receita ainda não era preenchido, desenvolvi a query abaixo, onde seleciono os valores máximo e mínimo de um determinado período, a partir de uma consulta mais ampla. *select max(vendas), min(vendas) from(* *select distinct (dat_emissao) as data, count(dat_emissao) as vendas * *from cadcvend * *where flg_excluido is null * *and num_nf is null* *-- and dat_emissao between '2004-06-07' and '2013-12-31' and* *group by dat_emissao* *-- order by dat_emissao* *order by vendas desc) as registro* * * Porém, o resultado apresentado não satisfaz a minha necessidade, gerando uma coluna com o máximo e outra com o mínimo. max --- min 338 2 O que eu quero, é uma forma de pegar as datas em que ocorrem os valores máximo e mínimo, e os valores (máximo e mínimo) em uma mesma coluna, ordenados por data, conforme modelo montado abaixo, pois ainda não consegui o mesmo resultado via SQL. data -- max_min 2004-06-072 2006-06-05 338 Obrigado a todos que puderam me ajudar. Em 10 de junho de 2013 09:12, Ramiro Pamponet roli...@oi.com.br escreveu: Bom dia Galera PG-BR, Estou querendo incrementar meu programa e gerar, a partir do resultado da consulta gerada pelo SQL abaixo, um segundo relatório contendo a data e quantidade de receitas (apenas os valores máximo e o mínimo), no mesmo relatório, ordenados por data. -- select dat_emissao as Data, SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS, SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR, count(flg_receita) as Total from cadcvend where flg_receita is not null and flg_excluido is null and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd') group by dat_emissao order by dat_emissao -- Alguém teria alguma sugestão? Agradeço a colaboração de todos! Em 3 de junho de 2013 21:03, Tiago Adami adam...@gmail.com escreveu: Em 3 de junho de 2013 20:38, Ramiro Pamponet roli...@oi.com.br escreveu: Boa Noite Pessoal, Estou querendo montar um relatório no iReport para uma aplicação Java que desenvolvi para capturar a quantidade de receitas do SUS, Particulares e Total por dia, da farmácia onde trabalho. Atualmente minha aplicação apresenta o resultado da consulta ao BD em um jTextArea, de forma individual, ou seja, uma query para as Receitas SUS, outra as Receitas Particulares e uma terceira para o Total de Receitas. O que eu estou querendo fazer agora é montar um único relatório, em forma de tabela, contendo os campos DATA ; SUS ; PARTICULAR ; TOTAL. Atualmente utilizo o modelo de query abaixo descriminado, onde as linhas precedidas por -- são as variantes da query. Existe alguma maneira de juntar todas as consultas em um único resultado, sabendo que a coluna flg_receita no BD recebe o valor CHAR 1 para receitas SUS e 2 para receitas Particulares. Utilizo o distinct para não repetir as datas e o count para contar as linhas contendo as regras definidas na cláusula where para o tipo de receita. QUERY: select distinct(dat_emissao) as Data, -- count(flg_receita) as SUS, -- count(flg_receita) as Particular, -- count(flg_receita) as Total from cadcvend where -- flg_receita='1' -- SUS -- flg_receita='2' -- Particular -- flg_receita is not null -- Total and flg_excluido is null -- Eliminar Vendas Excluídas -- and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd') group by dat_emissao order by dat_emissao Não testei, mas tenta esse aí: select dat_emissao as Data, SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS, SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR, count(flg_receita) as Total from cadcvend where flg_receita is not null and flg_excluido is null and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd') group by dat_emissao order by dat_emissao -- TIAGO J. ADAMI http://www.adamiworks.com @tiadami ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Fwd: SQL
Bom dia Galera PG-BR, Estou querendo incrementar meu programa e gerar, a partir do resultado da consulta gerada pelo SQL abaixo, um segundo relatório contendo a data e quantidade de receitas (apenas os valores máximo e o mínimo), no mesmo relatório, ordenados por data. -- select dat_emissao as Data, SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS, SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR, count(flg_receita) as Total from cadcvend where flg_receita is not null and flg_excluido is null and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd') group by dat_emissao order by dat_emissao -- Alguém teria alguma sugestão? Agradeço a colaboração de todos! Em 3 de junho de 2013 21:03, Tiago Adami adam...@gmail.com escreveu: Em 3 de junho de 2013 20:38, Ramiro Pamponet roli...@oi.com.br escreveu: Boa Noite Pessoal, Estou querendo montar um relatório no iReport para uma aplicação Java que desenvolvi para capturar a quantidade de receitas do SUS, Particulares e Total por dia, da farmácia onde trabalho. Atualmente minha aplicação apresenta o resultado da consulta ao BD em um jTextArea, de forma individual, ou seja, uma query para as Receitas SUS, outra as Receitas Particulares e uma terceira para o Total de Receitas. O que eu estou querendo fazer agora é montar um único relatório, em forma de tabela, contendo os campos DATA ; SUS ; PARTICULAR ; TOTAL. Atualmente utilizo o modelo de query abaixo descriminado, onde as linhas precedidas por -- são as variantes da query. Existe alguma maneira de juntar todas as consultas em um único resultado, sabendo que a coluna flg_receita no BD recebe o valor CHAR 1 para receitas SUS e 2 para receitas Particulares. Utilizo o distinct para não repetir as datas e o count para contar as linhas contendo as regras definidas na cláusula where para o tipo de receita. QUERY: select distinct(dat_emissao) as Data, -- count(flg_receita) as SUS, -- count(flg_receita) as Particular, -- count(flg_receita) as Total from cadcvend where -- flg_receita='1' -- SUS -- flg_receita='2' -- Particular -- flg_receita is not null -- Total and flg_excluido is null -- Eliminar Vendas Excluídas -- and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd') group by dat_emissao order by dat_emissao Não testei, mas tenta esse aí: select dat_emissao as Data, SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS, SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR, count(flg_receita) as Total from cadcvend where flg_receita is not null and flg_excluido is null and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd') group by dat_emissao order by dat_emissao -- TIAGO J. ADAMI http://www.adamiworks.com @tiadami ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Fwd: SQL
Boa Noite Pessoal, Estou querendo montar um relatório no iReport para uma aplicação Java que desenvolvi para capturar a quantidade de receitas do SUS, Particulares e Total por dia, da farmácia onde trabalho. Atualmente minha aplicação apresenta o resultado da consulta ao BD em um jTextArea, de forma individual, ou seja, uma query para as Receitas SUS, outra as Receitas Particulares e uma terceira para o Total de Receitas. O que eu estou querendo fazer agora é montar um único relatório, em forma de tabela, contendo os campos DATA ; SUS ; PARTICULAR ; TOTAL. Atualmente utilizo o modelo de query abaixo descriminado, onde as linhas precedidas por -- são as variantes da query. Existe alguma maneira de juntar todas as consultas em um único resultado, sabendo que a coluna flg_receita no BD recebe o valor CHAR 1 para receitas SUS e 2 para receitas Particulares. Utilizo o distinct para não repetir as datas e o count para contar as linhas contendo as regras definidas na cláusula where para o tipo de receita. QUERY: select distinct(dat_emissao) as Data, -- count(flg_receita) as SUS, -- count(flg_receita) as Particular, -- count(flg_receita) as Total from cadcvend where -- flg_receita='1' -- SUS -- flg_receita='2' -- Particular -- flg_receita is not null -- Total and flg_excluido is null -- Eliminar Vendas Excluídas -- and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd') group by dat_emissao order by dat_emissao Obrigado pela atenção de todos. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] pg_dump dando erro!
Olá pessoal, obrigado pelos e-mails. Respondendo às perguntas. - Utilizo o PostgreSQL 9.1.2 - Se observarem direito, eu também posto a saída do meu programa onde os espaços estão coretos run: 127.0.0.1 pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f H:/Backup/BDFisio.backup fisio pg_dump: too many command-line arguments (first is -U) Try pg_dump --help for more information. vou tentar as sugestões de retirar o -i e colocar o -U na frente para ver se funciona. Alguém tem alguma sugestão de como fazer o pg_dump rodar na máquina do cliente sem ter o postgreSQL instalado? Já copiei o pg_dump.exe e as DLL's da pasta BIN mas quando executo o *.bat em uma máquina que não tem o postgreSQL aparece a mensagem informando que pg_dump.exe não é reconhecido como um programa interno, externo ou programa de lotes. Será que tenho que copiar esses arquivos para o disco local C: (atualmente estou rodando o aplicativo em um pendrive) ou tem como registar o pg_dump como aplicativo na máquina do cliente? Valeu galera Em 29 de agosto de 2012 00:02, Matheus de Oliveira matioli.math...@gmail.com escreveu: Em 28/08/2012 23:16, Ramiro Pamponet roli...@oi.com.br escreveu: Olá pessoal. Estou tentando fazer o seguinte: public void realizaBackup() { Runtime r = Runtime.getRuntime(); String ip=; try { BufferedReader in = new BufferedReader(new FileReader(./IP.txt)); String str; while((str = in.readLine()) != null){ //JOptionPane.showMessageDialog(null, str); ip = str; } in.close(); }catch (Exception ex) { ex.printStackTrace(); } System.out.println(ip); try { String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\; System.out.println(cmd); Process p = r.exec(pg_dump -i -h+ ip +-p 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\); Parece que falta um espaço antes e um depois do IP. if (p != null) { OutputStream outputStream = p.getOutputStream(); outputStream.write(123\r\n.getBytes()); outputStream.flush(); outputStream.close(); InputStreamReader streamReader = new InputStreamReader(p.getErrorStream()); BufferedReader reader = new BufferedReader(streamReader); String linha; while ((linha = reader.readLine()) != null) { System.out.println(linha); } } JOptionPane.showMessageDialog(null, Backup realizado com sucesso!, Aviso, JOptionPane.INFORMATION_MESSAGE); } catch (IOException ioe) { JOptionPane.showMessageDialog(null, Erro ao tentar realizar o backup!\n + ioe.getMessage(), Erro, JOptionPane.ERROR_MESSAGE); ioe.printStackTrace(); } } O meu retorno no console é o seguinte run: 127.0.0.1 pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f H:/Backup/BDFisio.backup fisio pg_dump: too many command-line arguments (first is -U) Try pg_dump --help for more information. Não estou conseguindo enxergar o erro! Quando executo o arquivo de lote contendo o código abaixo ele funciona perfeitamente @echo off SET PGUSER=postgres SET PGPASSWORD=123 if exist H:\Backup (chdir H:\Backup) else (mkdir H:\Backup) echo Aguarde, realizando o backup do Banco de Dados for /f tokens=1,2,3,4 delims=/ %%a in ('DATE /T') do set Date=%%b-%%c-%%d rem O comando acima serve para armazenar a data no formato dia-mes-ano na variável Date; pg_dump -i -h localhost -p 5432 -U postgres -F c -b -o -v -f H:\Backup\BDFisio%Date%.backup fisio pause exit Alguém pode me dizer onde está o erro! valeu galera ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] pg_dump dando erro!
Olá Dickson, Então me responda, se souber! Porque quando eu executo o meu arquivo *.bat (que possui a mesma linha de comando) ele funciona, e quando tento executar a mesma linha de comando dentro do código fonte do meu programa é que ocorre o erro? Será que tem alguma explicação? Em 29 de agosto de 2012 08:52, Dickson S. Guedes lis...@guedesoft.netescreveu: Em 28 de agosto de 2012 23:16, Ramiro Pamponet roli...@oi.com.br escreveu: Olá pessoal. Estou tentando fazer o seguinte: [... corte ...] O meu retorno no console é o seguinte run: 127.0.0.1 pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f H:/Backup/BDFisio.backup fisio pg_dump: too many command-line arguments (first is -U) Try pg_dump --help for more information. O pgAdmin tem uma telinha em que ele vai logando os comandos que executa, tente fazer este dump pelo pgAdmin e veja a linha de comando que ele gera pois ele mostra pra você. Veja como ele faz e tente fazer no mesmo formato. Talvez usando as opções longas não melhore isto? Por exemplo, ao invés de -F c usar --format=custom , -h usar --host e assim por diante... []s -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] pg_dump dando erro!
Pô Tiago, era essa dica que eu estava precisando. Eu até encontrei um post sobre o assunto no Fórum JavaFree, mas o cara só informou que copiou os arquivos e não falou nada sobre setá-los na variável path do SO. Vou tentar isso e com certeza deverá funcionar. Valeu pela Dica! Em 29 de agosto de 2012 09:13, Tiago Adami adam...@gmail.com escreveu: Em 29 de agosto de 2012 08:49, Ramiro Pamponet roli...@oi.com.br escreveu: (corte) Alguém tem alguma sugestão de como fazer o pg_dump rodar na máquina do cliente sem ter o postgreSQL instalado? Já copiei o pg_dump.exe e as DLL's da pasta BIN mas quando executo o *.bat em uma máquina que não tem o postgreSQL aparece a mensagem informando que pg_dump.exe não é reconhecido como um programa interno, externo ou programa de lotes. Será que tenho que copiar esses arquivos para o disco local C: (atualmente estou rodando o aplicativo em um pendrive) ou tem como registar o pg_dump como aplicativo na máquina do cliente? Isso acontece porque o SO não sabe onde está o arquivo executável. Copiando os binários funciona, mas para que seja acessível você precisará informar sempre o caminho completo onde está o arquivo pg_dump.exe, como por exemplo: C:\C:\Arquivos de Programas\PostgreSQL\9.1\bin\pg_dump.exe -U postgres -h... -- com os parâmetros adicionais Ou então acrescentar o diretório onde você instalou os binários na variável PATH do sistema operacional. Procurando um pouco no Google você encontra algumas para fazer isso. -- TIAGO J. ADAMI http://www.adamiworks.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] pg_dump dando erro!
Olá Osvaldo, Então vc está me dizendo que a String impressa no console pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f H:/Backup/BDFisio.backup fisio não corresponde à String de execução? Process p = p.getRuntime(pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o -v -f /H:/Backup/BDFisio.backup/ /fisio/); Ainda não consegui enxergar o ERRO! A não ser que eu tenha que retirar as aspas dulas / ... / do nome do banco de dados (fisio). Será que pode ser isso? Em 29 de agosto de 2012 10:06, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 29/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: Olá pessoal, obrigado pelos e-mails. Respondendo às perguntas. - Utilizo o PostgreSQL 9.1.2 - Se observarem direito, eu também posto a saída do meu programa onde os espaços estão coretos run: 127.0.0.1 pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f H:/Backup/BDFisio.backup fisio pg_dump: too many command-line arguments (first is -U) Try pg_dump --help for more information. vou tentar as sugestões de retirar o -i e colocar o -U na frente para ver se funciona. Alguém tem alguma sugestão de como fazer o pg_dump rodar na máquina do cliente sem ter o postgreSQL instalado? Já copiei o pg_dump.exe e as DLL's da pasta BIN mas quando executo o *.bat em uma máquina que não tem o postgreSQL aparece a mensagem informando que pg_dump.exe não é reconhecido como um programa interno, externo ou programa de lotes. Será que tenho que copiar esses arquivos para o disco local C: (atualmente estou rodando o aplicativo em um pendrive) ou tem como registar o pg_dump como aplicativo na máquina do cliente? Valeu galera Observe que a string que você imprime *não* é a string que você passa para execução. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] pg_dump dando erro!
Em 29 de agosto de 2012 10:36, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 29/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: Olá Osvaldo, Então vc está me dizendo que a String impressa no console pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f H:/Backup/BDFisio.backup fisio não corresponde à String de execução? Process p = p.getRuntime(pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o -v -f /H:/Backup/BDFisio.backup/ /fisio/); Ainda não consegui enxergar o ERRO! A não ser que eu tenha que retirar as aspas dulas / ... / do nome do banco de dados (fisio). Será que pode ser isso? Consta de sua primeira mensagem: String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\; System.out.println(cmd); Process p = r.exec(pg_dump -i -h+ ip +-p 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\); Observe que em: Process p = r.exec(pg_dump -i -h+ ip +-p 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\); não existem os espaços antes e após a variável ip que constam em: String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\; Talvez você tenha corrigido posteriormente. Osvaldo Vou verificar isso! Só mesmo uma pessoa de forapara conseguir enxergar o erro! eu não tinha percebido mesmo! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] pg_dump dando erro!
Em 29 de agosto de 2012 10:50, Flavio Henrique Araque Gurgel fla...@4linux.com.br escreveu: Então vc está me dizendo que a String impressa no console pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f H:/Backup/BDFisio.backup fisio não corresponde à String de execução? Process p = p.getRuntime(pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o -v -f /H:/Backup/BDFisio.backup/ /fisio/); O Osvaldo tem razão, *não* é a mesma... Ainda não consegui enxergar o ERRO! A não ser que eu tenha que retirar as aspas dulas / ... / do nome do banco de dados (fisio). Será que pode ser isso? Simples, você coloca na variável cmd e depois concatena novamente, porque não usa a cmd? Veja, não tem espaço (peço desculpas aos demais pelo HTML): Process p = r.exec(pg_dump -i *-h+ ip +-p* 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\); E a solução é ainda mais simples, use a variável cmd que você já setou: String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\; System.out.println(cmd); Process p = r.exec(cmd); Atenciosamente, -- Matheus de Oliveira ___ pgbr-geral mailing listpgbr-ge...@listas.postgresql.org.brhttps://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Adicionalmente, recomendo ao colega verificar se a aplicação Java está usando o mesmo binário do pg_dump que o script bat. Pode ser que não. Especialmente em Windows e máquina que já teve servidor PostgreSQL e PgAdmin instalados separadamente. pg_dump --version pode ser executado via Java e via bat pra conferir. Passe o caminho completo do executável da versão certa no código para resolver. []s Flavio Henrique A. Gurgel Consultor e Instrutor 4Linux Tel: +55-11-2125-4747www.4linux.com.br A versão do pg_dump está correta. Desde o início eu sempre estou utilizando a mesma versão do PostgreSQL, e não tive outras versões instaladas em minha máquina anteriormente. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] pg_dump dando erro!
Em 29 de agosto de 2012 10:06, Ramiro Pamponet roli...@oi.com.br escreveu: Pô Tiago, era essa dica que eu estava precisando. Eu até encontrei um post sobre o assunto no Fórum JavaFree, mas o cara só informou que copiou os arquivos e não falou nada sobre setá-los na variável path do SO. Vou tentar isso e com certeza deverá funcionar. Valeu pela Dica! Em 29 de agosto de 2012 09:13, Tiago Adami adam...@gmail.com escreveu: Em 29 de agosto de 2012 08:49, Ramiro Pamponet roli...@oi.com.br escreveu: (corte) Alguém tem alguma sugestão de como fazer o pg_dump rodar na máquina do cliente sem ter o postgreSQL instalado? Já copiei o pg_dump.exe e as DLL's da pasta BIN mas quando executo o *.bat em uma máquina que não tem o postgreSQL aparece a mensagem informando que pg_dump.exe não é reconhecido como um programa interno, externo ou programa de lotes. Será que tenho que copiar esses arquivos para o disco local C: (atualmente estou rodando o aplicativo em um pendrive) ou tem como registar o pg_dump como aplicativo na máquina do cliente? Isso acontece porque o SO não sabe onde está o arquivo executável. Copiando os binários funciona, mas para que seja acessível você precisará informar sempre o caminho completo onde está o arquivo pg_dump.exe, como por exemplo: C:\C:\Arquivos de Programas\PostgreSQL\9.1\bin\pg_dump.exe -U postgres -h... -- com os parâmetros adicionais Ou então acrescentar o diretório onde você instalou os binários na variável PATH do sistema operacional. Procurando um pouco no Google você encontra algumas para fazer isso. -- TIAGO J. ADAMI http://www.adamiworks.com Se instalar o pgAdmin na Máquina do Cliente também resolve o meu problema. Aí eu posso utilizar a linha de comando utilizando o diretório de instalação do pgAdmin e rodar o pg_dump normalmente! Estou Correto? http://www.adamiworks.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Extrair mes e ano Postgresql
Em 29 de agosto de 2012 17:06, Edson Lidorio edson...@gmail.com escreveu: Só ordena, no ano atual veja como aparece: 3/2012 4/2010 4/2012 5/2012 6/2011 6/2012 7/2012 8/2012 Tenta assim order by EXTRACT(YEAR from a.dt_mov), EXTRACT(MONTH from a.dt_mov) 2012/8/22 Osvaldo Kussama osvaldo.kuss...@gmail.com Em 22/08/12, Tiago Adamiadam...@gmail.com escreveu: Em 22 de agosto de 2012 00:05, Matheus de Oliveira matioli.math...@gmail.com escreveu: Em 21/08/2012 21:27, Edson - Listas edson...@gmail.com escreveu: Olá Pessoal, Como extrair o mês e ano em um campo data no PostgreSql? Exemplo: (08/2012) Extrair só a data eu consegui... select EXTRACT(MONTH from a.dt_mov) mes,sum(a.vlr_final)total from movdirhe a where a.dt_mov between '01/01/2010' and '21/08/2012' group by EXTRACT(MONTH from a.dt_mov) order by mes asc Edson Dê uma olhada na função to_char. Resumindo pelo exemplo: SELECT LTRIM(TO_CHAR( EXTRACT(MONTH FROM a.dt_mov), '00' )) || '/' || LTRIM(TO_CHAR( EXTRACT(YEAR FROM a.dt_mov), '' )) AS MES_ANO NOTAS: * Não sei se era a sua dúvida, mas valores texto não são 'somados' e sim 'concatenados' com o operador 'pipe-pipe' = || * Se você não está limitando sua consulta a um intervalo dentro de apenas 1 ano, ordenar somente por mês não trará a ordem cronológica exata. O correto seria ordenar por ano e mês nesta ordem, ou simplesmente pelo campo 'a.dt_mov'. Mas neste caso não fica mais simples fazer: SELECT to_char(a.dt_mov, 'MM/') mes_ano, sum(a.vlr_final) total FROM movdirhe a WHERE a.dt_mov between '01/01/2010' and '21/08/2012' GROUP BY date_trunc('month', a.dt_mov) ORDER BY date_trunc('month', a.dt_mov); ou algo parecido? Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Extrair mes e ano Postgresql
Em 29 de agosto de 2012 17:24, Anselmo Silva anselmo@gmail.comescreveu: Não poderia ser somente order by a.dt_mov? Em 29 de agosto de 2012 17:20, Ramiro Pamponet roli...@oi.com.brescreveu: Em 29 de agosto de 2012 17:06, Edson Lidorio edson...@gmail.comescreveu: Só ordena, no ano atual veja como aparece: 3/2012 4/2010 4/2012 5/2012 6/2011 6/2012 7/2012 8/2012 Tenta assim order by EXTRACT(YEAR from a.dt_mov), EXTRACT(MONTH from a.dt_mov) 2012/8/22 Osvaldo Kussama osvaldo.kuss...@gmail.com Em 22/08/12, Tiago Adamiadam...@gmail.com escreveu: Em 22 de agosto de 2012 00:05, Matheus de Oliveira matioli.math...@gmail.com escreveu: Em 21/08/2012 21:27, Edson - Listas edson...@gmail.com escreveu: Olá Pessoal, Como extrair o mês e ano em um campo data no PostgreSql? Exemplo: (08/2012) Extrair só a data eu consegui... select EXTRACT(MONTH from a.dt_mov) mes,sum(a.vlr_final)total from movdirhe a where a.dt_mov between '01/01/2010' and '21/08/2012' group by EXTRACT(MONTH from a.dt_mov) order by mes asc Edson Dê uma olhada na função to_char. Resumindo pelo exemplo: SELECT LTRIM(TO_CHAR( EXTRACT(MONTH FROM a.dt_mov), '00' )) || '/' || LTRIM(TO_CHAR( EXTRACT(YEAR FROM a.dt_mov), '' )) AS MES_ANO NOTAS: * Não sei se era a sua dúvida, mas valores texto não são 'somados' e sim 'concatenados' com o operador 'pipe-pipe' = || * Se você não está limitando sua consulta a um intervalo dentro de apenas 1 ano, ordenar somente por mês não trará a ordem cronológica exata. O correto seria ordenar por ano e mês nesta ordem, ou simplesmente pelo campo 'a.dt_mov'. Mas neste caso não fica mais simples fazer: SELECT to_char(a.dt_mov, 'MM/') mes_ano, sum(a.vlr_final) total FROM movdirhe a WHERE a.dt_mov between '01/01/2010' and '21/08/2012' GROUP BY date_trunc('month', a.dt_mov) ORDER BY date_trunc('month', a.dt_mov); ou algo parecido? Osvaldo Na verdade eu só estou passando uma dica que me deram aqui nessa lista mesmo, no post Ordenar datas. Onde a única diferença é que eu precisava ordenar as datas por dia e mês. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Anselmo M. Silva ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Dúvida Manutenção de Banco de Dados
Olá Galera, Vou disponibilizar minha aplicação para o cliente e estou com algumas dúvidas. Como vou oferecer suporte ao software, gostaria de saber com que frequência se deve rodar o utilitário de manutenção do postgreSQL / pgAdmin III e qual a finalidade do Vaccum, Analyze e Reindex. É necessário realizar esses procedimentos? Outra Dúvida. Somente o formato CUSTOM (*.backup) é que pode ser utilizado para restaurar o banco de dados? Estou perguntando isso porque uma vez gerei um arquivo no formato Compress e no formato TAR e não consegui realizar a restauração do banco. Gerando um script (*.sql) também é possível restaurar o banco de dados a partir do pg_restore? É necessário informar ao utilitário de backup do pgAdmin III / postgreSQL (pg_dump) para inluir os Inserts das Colunas ou ele já faz isso automaticamente? E por fim, Estava querendo criar uma trigger para realizar o backup do banco de dados automaticamente em um horário próximo do final do expediente do cliente, para garantir que a base de dados esteja sempre atualizada, independente do cliente se lembrar ou não de fazê-lo, mas não sei criar triggers ainda, então gostaria de uma Força dos Colegas para me ajudar. Valeu Galera da Comunidade PG-BR ___ 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 Manutenção de Banco de Dados
Olá Fábio, Li seu post sobre Dump não é Backup e achei bem legal! Só agora caiu a ficha que era vc! Respondendo as suas perguntas: Utilizo o PstgreSQL 9.1.2 com pgAdmin III 1.14 Onde eu verifico se o autovacuum está habilitado? Uma vez eu li que a partir da versão 9.1 (ou anterior) ele já vinha habilitado por padrão! O Banco de Dados vai ser entregue ao cliente Zerado, e acho que não haverão tantas rotinas de delete e update, afinal de contas se trata de uma aplicação para gerenciar uma clínica (Cadastro de Clientes, Agendamento de Consultas, Orçamentos, ...). Existe alguma ferramenta melhor para fazer o backup da base de dados no postgreSQL que a ferramenta pg_dump? Para Agendar uma tarefa de Backup automático no Windows terei que chamar o pg_dump por um arquivo de lotes já que não dá para passar os argumentos da linha de comando pelo próprio agendador de tarefas (atualmente já utilizo o *.bat para fazer o backup a partir de minha aplicação). E realmente, na verdade, é manter o Backup atualizado! Mais uma dúvida! É possível fazer um Backup Local de uma Base de Dados Remota (é porque consegui fazer meu programa acessar o banco de dados em outra máquina através da internet, fornecendo o ip da conexão do servidor com a net), sem ter instalado na máquina local o PostgreSQL (ouvi falar em criar uma procedure e chamar o métido no programa via select, será que resolve?). A linguagem de Programação que utilizo é o java Em 28 de agosto de 2012 13:06, Fábio Telles Rodriguez fabio.tel...@gmail.com escreveu: Em 28 de agosto de 2012 12:33, Ramiro Pamponet roli...@oi.com.brescreveu: Olá Galera, Vou disponibilizar minha aplicação para o cliente e estou com algumas dúvidas. Meus parabéns, é sempre um momento gratificante entrar em produção finalmente!!! Como vou oferecer suporte ao software, gostaria de saber com que frequência se deve rodar o utilitário de manutenção do postgreSQL / pgAdmin III e qual a finalidade do Vaccum, Analyze e Reindex. É necessário realizar esses procedimentos? DEPENDE da sua aplicação e como você configura o Postgres. Pergunta número um: qual versão do Postgres você usa? Seu autovacuum está habilitado? Você realiza muitas operações de DELETE e UPDATE, particularmente em lote? Outra Dúvida. Somente o formato CUSTOM (*.backup) é que pode ser utilizado para restaurar o banco de dados? Estou perguntando isso porque uma vez gerei um arquivo no formato Compress e no formato TAR e não consegui realizar a restauração do banco. Gerando um script (*.sql) também é possível restaurar o banco de dados a partir do pg_restore? Ah... aqui eu vou pedir para você estudar um pouco mais a documentação. Perder um bom tempo estudando o assunto é fundamental. Vale a pena lembrar que DUMP NÃO É BACKUP!!! Leia: http://tellesr.wordpress.com/2010/05/06/dump-nao-e-backup http://www.postgresql.org/docs/9.1/static/backup.html É necessário informar ao utilitário de backup do pgAdmin III / postgreSQL (pg_dump) para inluir os Inserts das Colunas ou ele já faz isso automaticamente? Leia a documentação: http://www.postgresql.org/docs/9.1/static/app-pgdump.html E por fim, Estava querendo criar uma trigger para realizar o backup do banco de dados automaticamente em um horário próximo do final do expediente do cliente, Sim, agendar o backup para fora do horário de pico é uma boa ideia. para garantir que a base de dados esteja sempre atualizada, independente do cliente se lembrar ou não de fazê-lo, A base atualizada ou o backup atualizado? mas não sei criar triggers ainda, então gostaria de uma Força dos Colegas para me ajudar. Isso não deve funcionar muito bem. Use para isso o crontab + pg_dump no Unix ou scheduler + pg_dump no Windows. Valeu Galera da Comunidade PG-BR Me preocupa o fato de você estar a ponto de entrar em produção e ter tantas dúvidas assim. Se você puder, recomendo contratar os serviços de um DBA (tem vários na lista) para te orientar um pouco no começo. É um custo que pode lhe poupar de desastres maiores num futuro próximo. []s -- Atenciosamente, Fábio Telles Rodriguez blog: http:// http://www.midstorm.org/%7Etelles/ http://tellesr.wordpress.com e-mail / gtalk / MSN: fabio.tel...@gmail.com Skype: fabio_telles ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] pg_dump dando erro!
Olá pessoal. Estou tentando fazer o seguinte: public void realizaBackup() { Runtime r = Runtime.getRuntime(); String ip=; try { BufferedReader in = new BufferedReader(new FileReader(./IP.txt)); String str; while((str = in.readLine()) != null){ //JOptionPane.showMessageDialog(null, str); ip = str; } in.close(); }catch (Exception ex) { ex.printStackTrace(); } System.out.println(ip); try { String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\; System.out.println(cmd); Process p = r.exec(pg_dump -i -h+ ip +-p 5432 -U postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\); if (p != null) { OutputStream outputStream = p.getOutputStream(); outputStream.write(123\r\n.getBytes()); outputStream.flush(); outputStream.close(); InputStreamReader streamReader = new InputStreamReader(p.getErrorStream()); BufferedReader reader = new BufferedReader(streamReader); String linha; while ((linha = reader.readLine()) != null) { System.out.println(linha); } } JOptionPane.showMessageDialog(null, Backup realizado com sucesso!, Aviso, JOptionPane.INFORMATION_MESSAGE); } catch (IOException ioe) { JOptionPane.showMessageDialog(null, Erro ao tentar realizar o backup!\n + ioe.getMessage(), Erro, JOptionPane.ERROR_MESSAGE); ioe.printStackTrace(); } } O meu retorno no console é o seguinte run: 127.0.0.1 pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f H:/Backup/BDFisio.backup fisio pg_dump: too many command-line arguments (first is -U) Try pg_dump --help for more information. Não estou conseguindo enxergar o erro! Quando executo o arquivo de lote contendo o código abaixo ele funciona perfeitamente @echo off SET PGUSER=postgres SET PGPASSWORD=123 if exist H:\Backup (chdir H:\Backup) else (mkdir H:\Backup) echo Aguarde, realizando o backup do Banco de Dados for /f tokens=1,2,3,4 delims=/ %%a in ('DATE /T') do set Date=%%b-%%c-%%d rem O comando acima serve para armazenar a data no formato dia-mes-ano na variável Date; pg_dump -i -h localhost -p 5432 -U postgres -F c -b -o -v -f H:\Backup\BDFisio%Date%.backup fisio pause exit Alguém pode me dizer onde está o erro! valeu galera ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Configuração do Arquivo pg_hba.conf
Olá Galera, eu estava com o mesmo problema para acessar minha aplicação pela rede, mas resolvi acrescentando a segunda linha host ... # IPv4 local connections: hostall postgres 127.0.0.1/32 md5 hostall postgres 192.168.1.0/24md5 Mas eu também estava querendo permitir que o usuário pudesse se conectar ao banco pela internet, de um notebook por exemplo, para consultar sua agenda ou emitir algum relatório. Tentei incluir uma 3ª linha no arquivo hostall postgres 0.0.0.0/128md5 mas dessa forma, qdo eu vou reinicair o serviço, ocorre um erro e ele não inicia. Então fica a minha dúvida. Como fazer para configurar o arquivo pg_hba.conf para permitir que um computador externo à rede local acesse o banco de dados? qual configuração de IP eu devo utilizar para conseguir esse objetivo. Mais uma vez, Obrigado aos companheiros pela Ajuda ofertada! ATT Ramiro ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configuração do Arquivo pg_hba.conf
Olá Túlio, Obrigado por ter respondido. Na verdade o erro estava no /128 (que é para o IPV6) já que para o IPV4 é no máximo /32. Mesmo assim, Valeu! Em 26 de agosto de 2012 17:24, Tulio Santos tuliogust...@yahoo.com.brescreveu: Olá Ramiro, Tente desta forma.. Abs hostall postgres 0.0.0.0/0md5 Att, Tulio -- *De:* Ramiro Pamponet roli...@oi.com.br *Para:* Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br *Enviadas:* Domingo, 26 de Agosto de 2012 17:00 *Assunto:* [pgbr-geral] Configuração do Arquivo pg_hba.conf Olá Galera, eu estava com o mesmo problema para acessar minha aplicação pela rede, mas resolvi acrescentando a segunda linha host ... # IPv4 local connections: hostall postgres 127.0.0.1/32 md5 hostall postgres 192.168.1.0/24 md5 Mas eu também estava querendo permitir que o usuário pudesse se conectar ao banco pela internet, de um notebook por exemplo, para consultar sua agenda ou emitir algum relatório. Tentei incluir uma 3ª linha no arquivo hostall postgres 0.0.0.0/128md5 mas dessa forma, qdo eu vou reinicair o serviço, ocorre um erro e ele não inicia. Então fica a minha dúvida. Como fazer para configurar o arquivo pg_hba.conf para permitir que um computador externo à rede local acesse o banco de dados? qual configuração de IP eu devo utilizar para conseguir esse objetivo. Mais uma vez, Obrigado aos companheiros pela Ajuda ofertada! ATT Ramiro ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Excluindo Dados em duas Tabelas Relacionadas
Olá Galera, Possuo em minha aplicação 2 tabelas interligadas onde quando houver a exclusão dos dados de uma, na outra deverá haver a exclusão também. Tipo assim: as tabelas são c_orcamentos (Cabeçalho) e d_orçamentos (detalhes). A chave primária da tabela c_orcamentos (id) é chave estrangerira da tabela d_orcamentos (id_orcamento). Quando um orçamento for excluído, porque não foi confirmado no prazo de 60 dias por exemplo, eu preciso excluir os dados tanto na tabela c_orcamentos quanto na tabela d_orcamentos, se tentar excluir em um e não excluir na outra, vai dar violação de restrição FK. Mas o comando delete não aceita a estrutura - delete from c_orcamentos c, d_orcamentos d where c.id=d.id_orcamento and c.id= +tfOrcamento.getText(). Então a minha dúvida é, como fazer esse tipo de exclusão ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Olá Osvaldo, Na minha subquery eu quero que conste as datas de aniversário com o mês maior ou igual ao mês atual, e a partir daí (na minha query principal), eu quero que apenas as datas do resultado da minha subquery mostrem aquelas que possuem o dia maior ou igual ao dia atual, ordenando o resultado final por mês e dia. Vou tentar a solução apresnetada pelo Fabrizio *SELECT nome, aniversario FROM clientes WHERE extract(MONTH from aniversario) extract(MONTH from now()) OR (extract(MONTH from aniversario) = extract(MONTH from now()) AND extract(DAY from aniversario) = extract(DAY from now())) ORDER BY extract(MONTH from aniversario), extract(DAY from aniversario) * e ver se consigo o resultado esperado. Valeu Galera! Em 19 de agosto de 2012 23:00, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 19/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: E seu eu fizesse uso de subqueryes do tipo: - select nome, aniversario from clientes where extract(DAY from aniversario) = extract(DAY from now()) in (select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now())) order by extract(MONTH from aniversario), extract(DAY from aniversario) - mas com um pequeno detalhe, essa consulta me retorno o seguinte erro: - ERRO: subconsulta tem muitas colunas LINE 3: in ^ ** Error ** ERRO: subconsulta tem muitas colunas SQL state: 42601 Character: 103 - Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e aniversario). Onde estou errando? Era para fazer a consulta por mês e depois a partir do resultado dessa consulta fazer outra por dia, e por fim ordenar por mês e dia. Caso não seja possível, vou começar a pensar na possibilidade de utilizar a função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um Grande Abraço a Todos! Não consegui ver sentido em sua cláusula IN. O que você deseja que conste do resultado de sua sub-query? Osvaldo Obs.: Aonde você leu que a função to_char será descontinuada? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Osvaldo, respondendo a sua pergunta, onde eu vi sobre a descontinuidade da função to_char, entre outros lugares, segue abaixo o link de uma pesquisa no Google. Pode sere que não seja para agora, mas já está sendo levantada a hipótese para as próximas versões. ** POSTGRESQL EM EXEMPLOShttp://www.inf.ufrgs.br/%7Eirmmenezes/home/download/pgsql/postgreSQL_pratico.pdf www.inf.ufrgs.br/~irmmenezes/home/.../postgreSQL_pratico.pdf Formato do arquivo: PDF/Adobe Acrobat - Visualização rápidahttp://docs.google.com/viewer?a=vq=cache:HRCD0hQuW2gJ:www.inf.ufrgs.br/%7Eirmmenezes/home/download/pgsql/postgreSQL_pratico.pdf+fun%C3%A7%C3%A3o+to_char+descontinuadahl=pt-BRgl=brpid=blsrcid=ADGEESiVbpSueXp5amIuHupVCpZYhLB2TJZKiqD81ssV8aHEDv5tcMTxkHbog9atSQ1RCItOz6lZIKSmmcxl9tmd_3cvE9HkLpYhkzt1lDcHBOXkN-_3fe6dix4SPdiAXULUc-4MchfTsig=AHIEtbQR-6Dg_iadHVbWrCcc2iN9wnJf8w *TO_CHAR* - Esta *função* deve ser evitada, pois será *descontinuada*. TO_DATE date TO_DATE(text, text); Recebe dois parâmetros text e retorna date. Um dos *... ** * Em 19 de agosto de 2012 23:00, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 19/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: E seu eu fizesse uso de subqueryes do tipo: - select nome, aniversario from clientes where extract(DAY from aniversario) = extract(DAY from now()) in (select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now())) order by extract(MONTH from aniversario), extract(DAY from aniversario) - mas com um pequeno detalhe, essa consulta me retorno o seguinte erro: - ERRO: subconsulta tem muitas colunas LINE 3: in ^ ** Error ** ERRO: subconsulta tem muitas colunas SQL state: 42601 Character: 103 - Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e aniversario). Onde estou errando? Era para fazer a consulta por mês e depois a partir do resultado dessa consulta fazer outra por dia, e por fim ordenar por mês e dia. Caso não seja possível, vou começar a pensar na possibilidade de utilizar a função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um Grande Abraço a Todos! Não consegui ver sentido em sua cláusula IN. O que você deseja que conste do resultado de sua sub-query? Osvaldo Obs.: Aonde você leu que a função to_char será descontinuada? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
E seu eu fizesse uso de subqueryes do tipo: - select nome, aniversario from clientes where extract(DAY from aniversario) = extract(DAY from now()) in (select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now())) order by extract(MONTH from aniversario), extract(DAY from aniversario) - mas com um pequeno detalhe, essa consulta me retorno o seguinte erro: - ERRO: subconsulta tem muitas colunas LINE 3: in ^ ** Error ** ERRO: subconsulta tem muitas colunas SQL state: 42601 Character: 103 - Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e aniversario). Onde estou errando? Era para fazer a consulta por mês e depois a partir do resultado dessa consulta fazer outra por dia, e por fim ordenar por mês e dia. Caso não seja possível, vou começar a pensar na possibilidade de utilizar a função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um Grande Abraço a Todos! Em 18 de agosto de 2012 17:24, Dickson S. Guedes lis...@guedesoft.netescreveu: Em 18 de agosto de 2012 13:48, Ramiro Pamponet roli...@oi.com.br escreveu: Fabrizio, Sua solução atende 99% as minhas necessidades. Fiz umas alterações. select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now()) order by extract(MONTH from aniversario), extract(DAY from aniversario) Mas pra ficar 100% será que não teria como filtrar também pelo dia do mês, para que não mostre os clientes que já fizeram aniversário naquele mês? Mostar somente os clientes que ainda irão fazer aniversário, seja dentro do próprio mês ou nos meses seguintes. Talvez date_trunc [1] e interval ajude você a encontrar um caminho mais apropriado. [1] http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC []s -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Ordenar Datas
Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Vou testar essa query para ver se atende as minhas necessidades, e volto a postar assim que tiver uma confirmação. Valeu! Em 18 de agosto de 2012 10:46, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 18 de agosto de 2012 10:37, Ramiro Pamponet roli...@oi.com.brescreveu: Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado Se eu entendi bem vc quer algo tipo: SELECT codigo, nome, data_nascimento FROM tabela ORDER BY extract(MONTH FROM data_nascimento), extract(DAY FROM data_nascimento); Att, -- Fabrízio de Royes Mello Consultoria/Coaching PostgreSQL Blog sobre TI: http://fabriziomello.blogspot.com Perfil Linkedin: http://br.linkedin.com/in/fabriziomello Twitter: http://twitter.com/fabriziomello ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Vou testar essa query também e avaliar o seu retorno, comparando com a resposta data pelo Fabrízio de Royes Mello. Valeu pela dica Também! Em 18 de agosto de 2012 10:51, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 18/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado Uma possibilidade, para listar os aniversariantes por mês, é: SELECT nome, to_char(data_de_nascimento, 'MMDD') FROM sua_tabela ORDER BY 2; Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Fabrizio, Sua solução atende 99% as minhas necessidades. Fiz umas alterações. select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now()) order by extract(MONTH from aniversario), extract(DAY from aniversario) Mas pra ficar 100% será que não teria como filtrar também pelo dia do mês, para que não mostre os clientes que já fizeram aniversário naquele mês? Mostar somente os clientes que ainda irão fazer aniversário, seja dentro do próprio mês ou nos meses seguintes. Tentei inluir na query a opção select ... where ... and extract(DAYfrom aniversario) = extract(DAYfrom now()) order by ... mas dessa forma ele pula também os meses em que o dia é = que o dia atual. ATT Ramiro Em 18 de agosto de 2012 10:46, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 18 de agosto de 2012 10:37, Ramiro Pamponet roli...@oi.com.brescreveu: Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado Se eu entendi bem vc quer algo tipo: SELECT codigo, nome, data_nascimento FROM tabela ORDER BY extract(MONTH FROM data_nascimento), extract(DAY FROM data_nascimento); Att, -- Fabrízio de Royes Mello Consultoria/Coaching PostgreSQL Blog sobre TI: http://fabriziomello.blogspot.com Perfil Linkedin: http://br.linkedin.com/in/fabriziomello Twitter: http://twitter.com/fabriziomello ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral