Ir para conteúdo
Fórum Script Brasil

Alphak

Membros
  • Total de itens

    11
  • Registro em

  • Última visita

Sobre Alphak

Alphak's Achievements

0

Reputação

  1. Olá, Estou Montando um script em Python, para gerar dump do Postgresql, Segue o Script: Site fonte script: PostgreSQL Backup script (python) from time import gmtime, strftime import subprocess import os import glob import time # change these as appropriate for your platform/environment : USER = "postgres" PASS = "xxxxxxx" HOST = "localhost" BACKUP_DIR = "d:\\Pg_Backup\py\\" dumper = """ "c:\\Program Files\\PostgreSQL\\9.2\\bin\\pg_dump" -U %s -Z 9 -f %s -F c %s """ def log(string): print time.strftime("%Y-%m-%d-%H-%M-%S", time.gmtime()) + ": " + str(string) # Change the value in brackets to keep more/fewer files. time.time() returns seconds since 1970... # currently set to 2 days ago from when this script starts to run. x_days_ago = time.time() - (60 * 60 * 24 * 2) os.putenv('PGPASSWORD', PASS) database_list = subprocess.Popen('echo "select datname from pg_database" | psql -t -U %s -h %s template1' % USER , shell=True, stdout=subprocess.PIPE).stdout.readlines() # Delete old backup files first. for database_name in database_list : database_name = database_name.strip() if database_name == '': continue glob_list = glob.glob(BACKUP_DIR + database_name + '*' + '.pgdump') for file in glob_list: file_info = os.stat(file) if file_info.st_ctime < x_days_ago: log("Deslincando: %s" % file) os.unlink(file) else: log("Mantendo : %s" % file) log("Arquivos anteriores a: %s foram removidos." % time.strftime('%c', time.gmtime(x_days_ago))) # Now perform the backup. for database_name in database_list : log("Dump iniciado para %s" % database_name) thetime = str(strftime("%Y-%m-%d-%H-%M")) file_name = database_name + '_' + thetime + ".sql.pgdump" # Run the pg_dump command to the right directory command = dumper % (USER, BACKUP_DIR + file_name, database_name) log(command) subprocess.call(command, shell=True) log("Dump terminado para %s" % database_name) log("Tarefa de Backup completa.") Mas ao executá-lo ocorre o seguinte erro: Traceback (most recent call last): File "teste.py", line 25, in <module> database_list = subprocess.Popen('echo "select datname from pg_database" | psql -t -U %s -h %s template1' % USER , shell=True, stdout=subprocess.PIPE).stdout.readlines() TypeError: not enough arguments for format string
  2. Olá, Estou com um problema de calculos em uma função, abaixo: CREATE OR REPLACE FUNCTION calcular(IN v_entrada numeric DEFAULT 0, IN v_mes integer DEFAULT 1, IN v_ano integer DEFAULT 2013, OUT v_soma numeric) RETURNS numeric AS $BODY$ DECLARE vlSalAnt numeric := 0; BEGIN SELECT coalesce(sum(con_saldo), 0) INTO vlSalAnt FROM contabilizacoes WHERE con_mes = v_mes AND con_ano = v_ano; if vlSalAnt >= 0 then v_soma := (v_entrada + vlSalAnt); else v_soma := (v_entrada - vlSalAnt); end if; END $BODY$ LANGUAGE plpgsql VOLATILE; Como podem ver quando o valor da variável vlSalAnt é positivo está fazendo correto o cálculo, mas quando entra no else ao invéz de fazer (500 - 100) está fazendo (500 +100), o que estou fazendo errado nesta função.
  3. Olá, Gostaria fazer upload de arquivo Excel e inserir os dados no Banco de Dados PostgreSQL, atravéz de JSP (Java Server Pages). Obrigado Pela Atenção.
  4. No Diretório de instalação do phpPgMyAdmin/conf/ geralamente o caminho é : /usr/share/phppgadmin/conf/config.inc.php existe um arquivo chamado config.inc.php e você deve alterar a seguinte configuração: De: $conf['extra_login_security'] = true; Para: $conf['extra_login_security'] = false; Após feitas as alterações reiniciar o serviço do Apache.
  5. Você pode fazer desta menaira também. SELECT cod ,nome FROM tabela_a WHERE nome IN ( SELECT nome FROM tabela_b )
  6. Não estou coneguindo resolver o erro abaixo que ocorre em uma função PL/pgSQL que estou criando ERRO: não pode abrir consulta SELECT como cursor CONTEXT: PL/pgSQL function formula_cont_nv(integer,integer,integer,integer) line 5 at FOR sobre registros de SELECT ********** Error ********** ERRO: não pode abrir consulta SELECT como cursor SQL state: 42P11 Context: PL/pgSQL function formula_cont_nv(integer,integer,integer,integer) line 5 at FOR sobre registros de SELECT Função que está ocorrendo o erro: -- Function: formula_cont_nv(integer, integer, integer, integer) -- DROP FUNCTION formula_cont_nv(integer, integer, integer, integer); CREATE OR REPLACE FUNCTION formula_cont_nv(mesi integer, mesf integer, anoi integer, anof integer) RETURNS text AS $BODY$ DECLARE dados tp_formula_cont%ROWTYPE; BEGIN FOR dados IN (WITH v_entradas AS ( SELECT date_trunc('month', ent_data) mes ,sum(ent_valor) soma FROM entradas WHERE extract(year FROM ent_data) = extract(year FROM now()) GROUP BY 1 ) ,v_saidas AS ( SELECT date_trunc('month', sai_data) mes ,sum(sai_valor) soma FROM saidas WHERE extract(year FROM sai_data) = extract(year FROM now()) GROUP BY 1 ) SELECT extract(year FROM gs.mes)::NUMERIC ano ,extract(month FROM gs.mes)::NUMERIC mes ,round(coalesce(e.soma, 0), 2) entrada ,round(coalesce(s.soma, 0), 2) saida ,round(coalesce(e.soma, 0) - coalesce(s.soma, 0), 2) saldo ,round(coalesce((100 * s.soma) / e.soma, 0), 2) percentual INTO dados FROM v_entradas e INNER JOIN v_saidas s ON e.mes = s.mes RIGHT JOIN generate_series(date_trunc('year', now()), date_trunc('year', now()) + interval '1 year - 1 month', '1 month') gs(mes) ON gs.mes = e.mes) LOOP -- can do some processing here execute 'INSERT INTO ' || contabilizacoes || 'VALUES' || dados; END LOOP; RETURN 'OK'; END $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION formula_cont_nv(integer, integer, integer, integer) OWNER TO alphak_gp; Obrigado pela atenção
  7. Olá, Estou construindo gráficos com a biblioteca Highcharts, estou com dúvida para adicionar mais uma série no gráfico, abaixo arquivo javascript atual. $(document).ready(function () { var anoAtual = (new Date).getFullYear(); var options = { chart : { renderTo : 'xml', type : 'column' }, title : { text : 'Mensal (' + anoAtual + ')' }, xAxis : { categories : [] }, yAxis : { title : { text : 'Valores (R$)' } }, series : [] }; $.get('http://localhost:8080/Alphak_GP/File/cls_mensal', function (xml) { var $xml = $(xml); $xml.find('categories item').each(function (i, category) { options.xAxis.categories.push($(category).text()); }); $xml.find('series').each(function (i, series) { var seriesOptions = { name : $(series).find('name').text(), data : [] }; $(series).find('data point').each(function (i, point) { seriesOptions.data.push(parseFloat($(point).text())); }); options.series.push(seriesOptions); }); var chart = new Highcharts.Chart(options); }); }); Abaixo está o arquivo xml com dados para o gráfico <?xml version="1.0"encoding="UTF-8"?> <chart> <categories> <item>Jan</item> <item>Fev</item> <item>Mar</item> <item>Abr</item> <item>Mai</item> <item>Jun</item> <item>Jul</item> <item>Ago</item> <item>Set</item> <item>Out</item> <item>Nov</item> <item>Dez</item> </categories> <series> <name>Entradas</name> <data> <point>1200</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> </data> </series> <series> <name>Saidas</name> <data> <point>375</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> </data> </series> <series> <name>Saldo</name> <data> <point>825</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> <point>0</point> </data> </series> </chart> Resumindo gostaria adicionar uma linha com percentual como neste exemplo: jsFiddle
  8. Alphak

    Dúvidas Query WITH

    Ao Executar está query no Postgresql ocorre o seguinete erro: ERRO: erro de sintaxe no fim da entrada LINE 30: ) gs(mes) ^ ********** Error ********** ERRO: erro de sintaxe no fim da entrada SQL state: 42601 Character: 831 Não consegui resolver este erro.
  9. Alphak

    Dúvidas Query WITH

    Qual é a versão do postgresql? Versão Postgresql: PostgreSQL 9.2.2, compiled by Visual C++ build 1600, 64-bit
  10. Alphak

    Dúvidas Query WITH

    Olá, Muito obrigado pela ajuda na query, Estive testando e funcionou bem, gostaria esclarecer mais uma dúvida, quando uma das tabelas não contêm dados a query não retorna nada, teria alguma maneira de mandar o valor zero para soma? Obrigado pela atenção
  11. Olá, Gostaria saber o que está faltando nesta sentença sql, pois está trazendo dados duplicados, como ilistrado na imagem anexo. WITH v_entradas AS( SELECT DISTINCT COALESCE(round(SUM (ent_valor), 4), 0)AS soma FROM entradas WHERE EXTRACT(YEAR FROM ent_data)= EXTRACT(YEAR FROM now()) GROUP BY EXTRACT(MONTH FROM ent_data) ), v_saidas AS( SELECT DISTINCT COALESCE(round(SUM (sai_valor), 4), 0)AS soma2 FROM saidas WHERE EXTRACT(YEAR FROM sai_data)= EXTRACT(YEAR FROM now()) GROUP BY EXTRACT(MONTH FROM sai_data) )SELECT DISTINCT soma, soma2, soma - soma2 AS saldo FROM v_entradas,v_saidas where v_entradas.soma in (SELECT DISTINCT soma from v_entradas) and v_saidas.soma2 in (SELECT DISTINCT soma2 from v_saidas) Obrigado pela atenção.
×
×
  • Criar Novo...