[pgbr-geral] Problemas com stored procedure:
Fala galera, no sistema aqui, precisei criar uma stored procedure pra fazer um calculo, porem em varias colunas: ta tudo OK com o select, porém quando eu boto pra criar a procedure ele retorna o erro (veja abaixo do SQL) Stored procedure(Verificar abaixo): CREATE OR REPLACE FUNCTION social.soc_tx_mortalidadegeral_2000_2007_pa() RETURNS double precision AS $BODY$ SELECT distinct ((taxa_mortalidadegeral2000.num_masculino + taxa_mortalidadegeral2000.num_feminino + taxa_mortalidadegeral2000.num_ignorado) / populacao2000.populacao_total2000 * 1000::double precision) AS taxa_mortalidadegeral2000, ((taxa_mortalidadegeral2001.num_masculino + taxa_mortalidadegeral2001.num_feminino + taxa_mortalidadegeral2001.num_ignorado) / populacao2001.populacao_total2001 * 1000::double precision) AS taxa_mortalidadegeral2001, ((taxa_mortalidadegeral2002.num_masculino + taxa_mortalidadegeral2002.num_feminino + taxa_mortalidadegeral2002.num_ignorado) / populacao2002.populacao_total2002 * 1000::double precision) AS taxa_mortalidadegeral2002, ((taxa_mortalidadegeral2003.num_masculino + taxa_mortalidadegeral2003.num_feminino + taxa_mortalidadegeral2003.num_ignorado) / populacao2003.populacao_total2003 * 1000::double precision) AS taxa_mortalidadegeral2003, ((taxa_mortalidadegeral2004.num_masculino + taxa_mortalidadegeral2004.num_feminino + taxa_mortalidadegeral2004.num_ignorado) / populacao2004.populacao_total2004 * 1000::double precision) AS taxa_mortalidadegeral2004, ((taxa_mortalidadegeral2005.num_masculino + taxa_mortalidadegeral2005.num_feminino + taxa_mortalidadegeral2005.num_ignorado) / populacao2005.populacao_total2005 * 1000::double precision) AS taxa_mortalidadegeral2005, ((taxa_mortalidadegeral2006.num_masculino + taxa_mortalidadegeral2006.num_feminino + taxa_mortalidadegeral2006.num_ignorado) / populacao2006.populacao_total2006 * 1000::double precision) AS taxa_mortalidadegeral2006, ((taxa_mortalidadegeral2007.num_masculino + taxa_mortalidadegeral2007.num_feminino + taxa_mortalidadegeral2007.num_ignorado) / populacao2007.populacao_total2007 * 1000::double precision) AS taxa_mortalidadegeral2007 FROM ( SELECT soc_obitos_fxe_causas_2000.estado, sum(soc_obitos_fxe_causas_2000.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2000.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2000.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2000 GROUP BY soc_obitos_fxe_causas_2000.estado) taxa_mortalidadegeral2000, ( SELECT soc_obitos_fxe_causas_2001.estado, sum(soc_obitos_fxe_causas_2001.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2001.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2001.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2001 GROUP BY soc_obitos_fxe_causas_2001.estado) taxa_mortalidadegeral2001,( SELECT soc_obitos_fxe_causas_2002.estado, sum(soc_obitos_fxe_causas_2002.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2002.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2002.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2002 GROUP BY soc_obitos_fxe_causas_2002.estado) taxa_mortalidadegeral2002,( SELECT soc_obitos_fxe_causas_2003.estado, sum(soc_obitos_fxe_causas_2003.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2003.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2003.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2003 GROUP BY soc_obitos_fxe_causas_2003.estado) taxa_mortalidadegeral2003,( SELECT soc_obitos_fxe_causas_2004.estado, sum(soc_obitos_fxe_causas_2004.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2004.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2004.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2004 GROUP BY soc_obitos_fxe_causas_2004.estado) taxa_mortalidadegeral2004,( SELECT soc_obitos_fxe_causas_2005.estado, sum(soc_obitos_fxe_causas_2005.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2005.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2005.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2005 GROUP BY soc_obitos_fxe_causas_2005.estado) taxa_mortalidadegeral2005,( SELECT soc_obitos_fxe_causas_2006.estado, sum(soc_obitos_fxe_causas_2006.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2006.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2006.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2006 GROUP BY soc_obitos_fxe_causas_2006.estado) taxa_mortalidadegeral2006,( SELECT soc_obitos_fxe_causas_2007.estado, sum(soc_obitos_fxe_causas_2007.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2007.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2007.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2007 GROUP BY soc_obitos_fxe_causas_2007.estado) taxa_mortalidadegeral2007, ( SELECT dem_pop_2000.estado,
Re: [pgbr-geral] Problemas com stored procedure:
2009/12/21 Bruno Sales brunosale...@gmail.com Fala galera, no sistema aqui, precisei criar uma stored procedure pra fazer um calculo, porem em varias colunas: ta tudo OK com o select, porém quando eu boto pra criar a procedure ele retorna o erro (veja abaixo do SQL) Stored procedure(Verificar abaixo): Caro Bruno, Esse seu problema pode ser resolvido de várias maneiras, mas nesse seu caso creio que seria interessante você criar um tipo de dados composto [1] ou simplesmente retornar um record e definir o tipo de retorno no próprio SELECT, ex: select * from social.soc_tx_mortalidadegeral_2000_2007_pa() as x(taxa_mortalidadegeral2000 float8, taxa_mortalidadegeral2001 float8, ...); [1] http://www.postgresql.org/docs/8.4/interactive/rowtypes.html -- Fabrízio de Royes Mello Blog sobre TI: http://fabriziomello.blogspot.com ___ 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 stored procedure:
Olá, 2009/12/21 Bruno Sales brunosale...@gmail.com Fala galera, no sistema aqui, precisei criar uma stored procedure pra fazer um calculo, porem em varias colunas: ta tudo OK com o select, porém quando eu boto pra criar a procedure ele retorna o erro (veja abaixo do SQL) Stored procedure(Verificar abaixo): CREATE OR REPLACE FUNCTION social.soc_tx_mortalidadegeral_2000_2007_pa() RETURNS double precision AS $BODY$ SELECT distinct ((taxa_mortalidadegeral2000.num_masculino + taxa_mortalidadegeral2000.num_feminino + taxa_mortalidadegeral2000.num_ignorado) / populacao2000.populacao_total2000 * 1000::double precision) AS taxa_mortalidadegeral2000, ((taxa_mortalidadegeral2001.num_masculino + taxa_mortalidadegeral2001.num_feminino + taxa_mortalidadegeral2001.num_ignorado) / populacao2001.populacao_total2001 * 1000::double precision) AS taxa_mortalidadegeral2001, ((taxa_mortalidadegeral2002.num_masculino + taxa_mortalidadegeral2002.num_feminino + taxa_mortalidadegeral2002.num_ignorado) / populacao2002.populacao_total2002 * 1000::double precision) AS taxa_mortalidadegeral2002, ((taxa_mortalidadegeral2003.num_masculino + taxa_mortalidadegeral2003.num_feminino + taxa_mortalidadegeral2003.num_ignorado) / populacao2003.populacao_total2003 * 1000::double precision) AS taxa_mortalidadegeral2003, ((taxa_mortalidadegeral2004.num_masculino + taxa_mortalidadegeral2004.num_feminino + taxa_mortalidadegeral2004.num_ignorado) / populacao2004.populacao_total2004 * 1000::double precision) AS taxa_mortalidadegeral2004, ((taxa_mortalidadegeral2005.num_masculino + taxa_mortalidadegeral2005.num_feminino + taxa_mortalidadegeral2005.num_ignorado) / populacao2005.populacao_total2005 * 1000::double precision) AS taxa_mortalidadegeral2005, ((taxa_mortalidadegeral2006.num_masculino + taxa_mortalidadegeral2006.num_feminino + taxa_mortalidadegeral2006.num_ignorado) / populacao2006.populacao_total2006 * 1000::double precision) AS taxa_mortalidadegeral2006, ((taxa_mortalidadegeral2007.num_masculino + taxa_mortalidadegeral2007.num_feminino + taxa_mortalidadegeral2007.num_ignorado) / populacao2007.populacao_total2007 * 1000::double precision) AS taxa_mortalidadegeral2007 FROM ( SELECT soc_obitos_fxe_causas_2000.estado, sum(soc_obitos_fxe_causas_2000.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2000.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2000.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2000 GROUP BY soc_obitos_fxe_causas_2000.estado) taxa_mortalidadegeral2000, ( SELECT soc_obitos_fxe_causas_2001.estado, sum(soc_obitos_fxe_causas_2001.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2001.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2001.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2001 GROUP BY soc_obitos_fxe_causas_2001.estado) taxa_mortalidadegeral2001,( SELECT soc_obitos_fxe_causas_2002.estado, sum(soc_obitos_fxe_causas_2002.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2002.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2002.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2002 GROUP BY soc_obitos_fxe_causas_2002.estado) taxa_mortalidadegeral2002,( SELECT soc_obitos_fxe_causas_2003.estado, sum(soc_obitos_fxe_causas_2003.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2003.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2003.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2003 GROUP BY soc_obitos_fxe_causas_2003.estado) taxa_mortalidadegeral2003,( SELECT soc_obitos_fxe_causas_2004.estado, sum(soc_obitos_fxe_causas_2004.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2004.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2004.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2004 GROUP BY soc_obitos_fxe_causas_2004.estado) taxa_mortalidadegeral2004,( SELECT soc_obitos_fxe_causas_2005.estado, sum(soc_obitos_fxe_causas_2005.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2005.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2005.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2005 GROUP BY soc_obitos_fxe_causas_2005.estado) taxa_mortalidadegeral2005,( SELECT soc_obitos_fxe_causas_2006.estado, sum(soc_obitos_fxe_causas_2006.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2006.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2006.sexo_ignorado) as num_ignorado FROM social.soc_obitos_fxe_causas_2006 GROUP BY soc_obitos_fxe_causas_2006.estado) taxa_mortalidadegeral2006,( SELECT soc_obitos_fxe_causas_2007.estado, sum(soc_obitos_fxe_causas_2007.masculino) AS num_masculino, sum(soc_obitos_fxe_causas_2007.feminino) AS num_feminino, sum(soc_obitos_fxe_causas_2007.sexo_ignorado) as num_ignorado FROM
Re: [pgbr-geral] Problemas com stored procedure.
opa, obrigado aos que ajudaram segui a dica do jotacomm, muito obrigado, consegui criar a stored procedure! porém quando o utilizo na minha aplicação, a stored parece que nem ta sendo ativada.. segundo a stored, ela deveria calcular em porcentagem os valores, e nao soma-los [ como na imagem ]. De acordo com a minha aplicação: if (somavalores == 'false') { $calc_proc = execute($cone, select * from .$stored);} $calc_proc = pg_fetch_row($calc_proc, 0); $SomaColuna[$coluna] = $calc_proc[0]; } ele deveria executar a stored procedure nomeada no banco e dar os valores subsequentes.. fico na esperança que o problema seja no banco, e nao na aplicação.. []´s -- xT ___ 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 stored procedure
Aew Galera, esqueçam meu ultimo topico, ja resolvi o problema, muito obrigado pelas solucoes, e obrigado pela compreensao. []´ss ___ 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 quanto ao uso muitos if's
2009/12/21 Tiago Valério tiagosvale...@gmail.com: Temos uma function que usamos para o seguinte fim: Popular um esquema de relacional com os dados de uma tabela de processamento diário, e isto envolve tabelas de historicos e uma série de outras tabelas. O problema que para validadar os dados estou usando muitos if's.Existe alguma maneira de subistituir estes if's por outra estrutura de controle menos custosa? Você quer dizer: uma estrutura de controle que faça a mesma coisa que o IF mas não seja o IF? Não creio, o pessoal que desenvolveu o PostgreSQL não tem o costume de duplicar as coisas. De qualquer maneira em [1] você encontra a descrição de todas as estruturas de controle existentes. Osvaldo [1] http://www.postgresql.org/docs/current/interactive/plpgsql-control-structures.html ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Res: Duvida quanto ao uso muitos if's
Tiago, Use CASE aonde for possivel. Fiz aqui e fica bem mais rapido que IF. NG De: Osvaldo Kussama osvaldo.kuss...@gmail.com Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Enviadas: Segunda-feira, 21 de Dezembro de 2009 13:21:18 Assunto: Re: [pgbr-geral] Duvida quanto ao uso muitos if's 2009/12/21 Tiago Valério tiagosvale...@gmail.com: Temos uma function que usamos para o seguinte fim: Popular um esquema de relacional com os dados de uma tabela de processamento diário, e isto envolve tabelas de historicos e uma série de outras tabelas. O problema que para validadar os dados estou usando muitos if's.Existe alguma maneira de subistituir estes if's por outra estrutura de controle menos custosa? Você quer dizer: uma estrutura de controle que faça a mesma coisa que o IF mas não seja o IF? Não creio, o pessoal que desenvolveu o PostgreSQL não tem o costume de duplicar as coisas. De qualquer maneira em [1] você encontra a descrição de todas as estruturas de controle existentes. Osvaldo [1] http://www.postgresql.org/docs/current/interactive/plpgsql-control-structures.html ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Array como parâmetro de uma funç ão
Boa tarde, Estou com um problema para definir como parâmetro de uma function, um vetor (array) de inteiros. Pesquisei sobre o assunto, mas infelizmente não consegui resolver minha situação. Acredito que o problema seja sintaxe...na linha de criação da função fiz da seguinte forma: CREATE OR REPLACE FUNCTION gera_faixas_insere_farm(faixas integer[]) No momento da chamada da função ficou desta forma: select gera_faixas_insere_farm('{01,2,3,4,5,6,7,8,9,10,11}'); Att Everson Barbosa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Array como parâmetro de uma funç ão
Olá, 2009/12/21 Everson Barbosa everson...@gmail.com Boa tarde, Estou com um problema para definir como parâmetro de uma function, um vetor (array) de inteiros. Pesquisei sobre o assunto, mas infelizmente não consegui resolver minha situação. Acredito que o problema seja sintaxe...na linha de criação da função fiz da seguinte forma: CREATE OR REPLACE FUNCTION gera_faixas_insere_farm(faixas integer[]) No momento da chamada da função ficou desta forma: select gera_faixas_insere_farm('{01,2,3,4,5,6,7,8,9,10,11}'); Qual o erro? O que está acontecendo? Att Everson Barbosa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Array como parâmetro de uma funç ão
Primeiramente desculpe pelo código 'arcaico'. Na verdade a função executa sem erros, mas na chamada da função onde deveria retornar true se o resultado fosse correto, retorna false (estou tentando realizar a chamada da função de duas formas). A função que eu chamo dentro desta função, executa normalmente sozinha. Por exemplo 'select gera_cnpj_faixa(10)'. Desde já agradeço. CREATE OR REPLACE FUNCTION gera_faixas_insere_farm(faixas integer[]) RETURNS boolean AS $gera_faixas_insere_farm$ DECLARE comando text; faixas integer[]; contador integer; BEGIN truncate table tb_cnpj_faixa; contador := 1; while (contador = array_upper(faixas,1)) loop comando:= 'select gera_cnpj_faixa(' || faixas[contador] || ')'; execute comando; contador := contador + 1; end loop; return found; END; $gera_faixas_insere_farm$ language plpgsql; Chamadas da função...duas tentativas: 1) select gera_faixas_insere_farm('{01,2,3,4,5,6,7,8,9,10,11}'); 2) select gera_faixas_insere_farm(array[01,02,03,04]); Att Everson Barbosa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.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] Array como parâmetro de uma funç ão
2009/12/21 Everson Barbosa everson...@gmail.com: Primeiramente desculpe pelo código 'arcaico'. Na verdade a função executa sem erros, mas na chamada da função onde deveria retornar true se o resultado fosse correto, retorna false (estou tentando realizar a chamada da função de duas formas). A função que eu chamo dentro desta função, executa normalmente sozinha. Por exemplo 'select gera_cnpj_faixa(10)'. Desde já agradeço. CREATE OR REPLACE FUNCTION gera_faixas_insere_farm(faixas integer[]) ^^ RETURNS boolean AS $gera_faixas_insere_farm$ DECLARE comando text; faixas integer[]; ^^ contador integer; BEGIN truncate table tb_cnpj_faixa; contador := 1; while (contador = array_upper(faixas,1)) loop comando:= 'select gera_cnpj_faixa(' || faixas[contador] || ')'; execute comando; contador := contador + 1; end loop; return found; END; $gera_faixas_insere_farm$ language plpgsql; Chamadas da função...duas tentativas: 1) select gera_faixas_insere_farm('{01,2,3,4,5,6,7,8,9,10,11}'); 2) select gera_faixas_insere_farm(array[01,02,03,04]); Repare que você declarou faixa duas 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] Array como parâmetro de uma funç ão
Olá 2009/12/21 Everson Barbosa everson...@gmail.com Primeiramente desculpe pelo código 'arcaico'. Na verdade a função executa sem erros, mas na chamada da função onde deveria retornar true se o resultado fosse correto, retorna false (estou tentando realizar a chamada da função de duas formas). A função que eu chamo dentro desta função, executa normalmente sozinha. Por exemplo 'select gera_cnpj_faixa(10)'. Desde já agradeço. CREATE OR REPLACE FUNCTION gera_faixas_insere_farm(faixas integer[]) RETURNS boolean AS $gera_faixas_insere_farm$ DECLARE comando text; faixas integer[]; contador integer; BEGIN truncate table tb_cnpj_faixa; contador := 1; while (contador = array_upper(faixas,1)) loop comando:= 'select gera_cnpj_faixa(' || faixas[contador] || ')'; execute comando; contador := contador + 1; end loop; return found; END; $gera_faixas_insere_farm$ language plpgsql; Chamadas da função...duas tentativas: 1) select gera_faixas_insere_farm('{01,2,3,4,5,6,7,8,9,10,11}'); 2) select gera_faixas_insere_farm(array[01,02,03,04]); O problema provavelmente é que você definiu um parâmetro de entrada (array faixas[] ) e também definiu uma variável do tipo array chamada faixas[]. Mude o nome de uma das variáveis e o seu código deve funcionar corretamente. Att Everson Barbosa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.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 []s -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Array como parâmetro de uma funç ão
Deu certo. Obrigado pela ajuda. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Join com função
Olá criei uma função com parametros INOUT e OUT. CREATE OR REPLACE FUNCTION fn_verifica_lcto_ficha_avaliacao( INOUT pCodTurma integer, INOUT pCodDisciplina integer, INOUT pCodProfessor integer, OUT oPercLancadoB1 numeric, OUT oPercLancadoB2 numeric, OUT oPercLancadoB3 numeric, OUT oPercLancadoB4 numeric ) RETURNS SETOF record AS $BODY$DECLARE recTurma RECORD; -- para utilização em consultas Até aí tudo bem, funciona beleza extamente como queria. No entanto preciso fazer um join para retorno em uma consulta e é aí que não consigo o resultado adequado. Já testei essas 3 alternativas e não marquei nenhum ponto LEFT OUTER JOIN * fn_verifica_lcto_ficha_avaliacao(t.cod_turma,di.cod_disciplina,d.cod_professor) * f LEFT OUTER JOIN * fn_verifica_lcto_ficha_avaliacao(t.cod_turma,di.cod_disciplina,d.cod_professor) * f on f.pCodDisciplina=t.cod_turma and f.pCodTurma=di.cod_disciplina and f.pCodProfessor=d.cod_professor LEFT OUTER JOIN* fn_verifica_lcto_ficha_avaliacao() *f on f.pCodDisciplina=t.cod_turma and f.pCodTurma=di.cod_disciplina and f.pCodProfessor=d.cod_professor Considerando que o restante da consulta está funcionando perfeitamente e os parâmetros de passagem e comparação são os corretos, qual a forma para fazer que este join com esta função ocorra? Obrigado - Rudinei Dias ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Join com função
Olá, 2009/12/21 Rudinei Dias rudinei.d...@gmail.com Olá criei uma função com parametros INOUT e OUT. CREATE OR REPLACE FUNCTION fn_verifica_lcto_ficha_avaliacao( INOUT pCodTurma integer, INOUT pCodDisciplina integer, INOUT pCodProfessor integer, OUT oPercLancadoB1 numeric, OUT oPercLancadoB2 numeric, OUT oPercLancadoB3 numeric, OUT oPercLancadoB4 numeric ) RETURNS SETOF record AS $BODY$DECLARE recTurma RECORD; -- para utilização em consultas Até aí tudo bem, funciona beleza extamente como queria. No entanto preciso fazer um join para retorno em uma consulta e é aí que não consigo o resultado adequado. Já testei essas 3 alternativas e não marquei nenhum ponto LEFT OUTER JOIN * fn_verifica_lcto_ficha_avaliacao(t.cod_turma,di.cod_disciplina,d.cod_professor) * f LEFT OUTER JOIN * fn_verifica_lcto_ficha_avaliacao(t.cod_turma,di.cod_disciplina,d.cod_professor) * f on f.pCodDisciplina=t.cod_turma and f.pCodTurma=di.cod_disciplina and f.pCodProfessor=d.cod_professor LEFT OUTER JOIN* fn_verifica_lcto_ficha_avaliacao() *f on f.pCodDisciplina=t.cod_turma and f.pCodTurma=di.cod_disciplina and f.pCodProfessor=d.cod_professor Considerando que o restante da consulta está funcionando perfeitamente e os parâmetros de passagem e comparação são os corretos, qual a forma para fazer que este join com esta função ocorra? O que exatamente não funciona? O resultado gerado não é o resultado esperado? Obrigado - Rudinei Dias ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Join com função
Depende do caso, mas em todas dá erro (abaixo). 2009/12/21 JotaComm jota.c...@gmail.com Olá, 2009/12/21 Rudinei Dias rudinei.d...@gmail.com Olá criei uma função com parametros INOUT e OUT. CREATE OR REPLACE FUNCTION fn_verifica_lcto_ficha_avaliacao( INOUT pCodTurma integer, INOUT pCodDisciplina integer, INOUT pCodProfessor integer, OUT oPercLancadoB1 numeric, OUT oPercLancadoB2 numeric, OUT oPercLancadoB3 numeric, OUT oPercLancadoB4 numeric ) RETURNS SETOF record AS $BODY$DECLARE recTurma RECORD; -- para utilização em consultas Até aí tudo bem, funciona beleza extamente como queria. No entanto preciso fazer um join para retorno em uma consulta e é aí que não consigo o resultado adequado. Já testei essas 3 alternativas e não marquei nenhum ponto LEFT OUTER JOIN * fn_verifica_lcto_ficha_avaliacao(t.cod_turma,di.cod_disciplina,d.cod_professor) * f Neste caso ERROR: syntax error at or near where LINE 34: where to_date('15/12/2009','dd/mm/') between e.sedi_dt... LEFT OUTER JOIN * fn_verifica_lcto_ficha_avaliacao(t.cod_turma,di.cod_disciplina,d.cod_professor) * f on f.pCodDisciplina=t.cod_turma and f.pCodTurma=di.cod_disciplina and f.pCodProfessor=d.cod_professor Neste caso ERROR: invalid reference to FROM-clause entry for table t LINE 29: ... LEFT OUTER JOIN fn_verifica_lcto_ficha_avaliacao(t.cod_turm... ^ HINT: There is an entry for table t, *but it cannot be referenced from this part of the query*. LEFT OUTER JOIN* fn_verifica_lcto_ficha_avaliacao() *f on f.pCodDisciplina=t.cod_turma and f.pCodTurma=di.cod_disciplina and f.pCodProfessor=d.cod_professor E neste caso ERROR: function fn_verifica_lcto_ficha_avaliacao() does not exist LINE 33: LEFT OUTER JOIN fn_verifica_lcto_ficha_ava... ^ *HINT: No function matches the given name and argument types. You may need to add explicit type casts.* ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Join com função
*A função completa (FUNCIONAL)* -- DROP FUNCTION fn_verifica_lcto_ficha_avaliacao(integer, integer, integer); CREATE OR REPLACE FUNCTION fn_verifica_lcto_ficha_avaliacao( INOUT pCodTurma integer, INOUT pCodDisciplina integer, INOUT pCodProfessor integer, OUT oPercLancadoB1 numeric, OUT oPercLancadoB2 numeric, OUT oPercLancadoB3 numeric, OUT oPercLancadoB4 numeric ) RETURNS SETOF record AS $BODY$DECLARE recTurma RECORD; -- para utilização em consultas recLctos RECORD; -- para utilização em consultas vContINTEGER; BEGIN -- ESTA FUNÇÃO VERIFICA A SITUAÇÃO DE PENDÊNCIA DO MODELO DE AVALIACAO NO PLANO DE ENSINO -- com a especificação que é só para um bimestre em específico select t.* into recTurma from sie_turma_disciplinaxprofessor td join turmas t on td.cod_turma=t.cod_turma where t.cod_turma=pCodTurma and td.cod_disciplina=pCodDisciplina and td.cod_professor=pCodProfessor limit 1; -- select td.*, t.* from sie_turma_disciplinaxprofessor td join turmas t on td.cod_turma=t.cod_turma where t.cod_turma=1859 and td.cod_disciplina=496 and td.cod_professor=84; if not found then RAISE NOTICE 'Turma não localizada'; return; end if; RAISE NOTICE 'Turma localizada % % %', recTurma.cod_curso, recTurma.sedi_ano, recTurma.sedi_mes; vCont:=0; for recLctos IN select avg( case when sfar_av_nc='S' then 1 when sfar_nota is not null then 1 else 0 end )*100 as lancada , pa.spensa_bimestre -- , fr.*, ta.*, pa.* --, pe.* from sie_planos_ensino pe join turma_alunos ta on pe.cod_turma=ta.cod_turma and pe.cod_disciplina=ta.cod_disciplina and ativo='S' left outer join sie_planos_ensino_avaliacao pa on pe.spens_id=pa.spens_id left outer join sie_ficha_avaliacao_registro fr on pa.spens_id=fr.spens_id and pa.spensa_bimestre=fr.spensa_bimestre and pa.spensa_tipo=fr.spensa_tipo and pa.spensa_data_prevista_seq=fr.spensa_data_prevista_seq and ta.cod_turma_aluno=fr.cod_turma_aluno where pe.cod_disciplina=pCodDisciplina and pe.cod_professor=pCodProfessor and pe.cod_curso=recTurma.cod_curso and pe.sedi_ano=recTurma.sedi_ano and pe.sedi_mes=recTurma.sedi_mes -- and ta.cod_turma_aluno=159607 group by 2 order by 2 loop if recLctos.spensa_bimestre = 1 then oPercLancadoB1:=trunc(recLctos.lancada,1); end if; if recLctos.spensa_bimestre = 2 then oPercLancadoB2:=trunc(recLctos.lancada,1); end if; if recLctos.spensa_bimestre = 3 then oPercLancadoB3:=trunc(recLctos.lancada,1); end if; if recLctos.spensa_bimestre = 4 then oPercLancadoB4:=trunc(recLctos.lancada,1); end if; vCont:=vCont+1; end loop; return next; RAISE NOTICE ' Encontrados %',vCont; END;$BODY$ LANGUAGE 'plpgsql' VOLATILE; *A consulta completa (sem o join com a função e com a devida alteração no group by a consulta é funcional e está correta)* select 'cadLancNotas.php?semestre='||t.sedi_ano||'-'||t.sedi_mes||'codProfessor='||d.cod_professor||'codTurma='||t.cod_turma||'codDisciplina='||d.cod_disciplina||'action=LISTA_TURMAS' as link, e.sedi_ano, e.sedi_mes, e.sedi_periodo_identificacao, p.nome, c.cod_curso, c.curso, di.cod_disciplina, di.disciplina, t.turma, t.cod_turma, c.num_medias, count(ta.matricula) as matriculas, case when c.num_medias 0 then to_char(sum(case when nota_m1 is null then 0 else 1 end),'') else '-' end as n1, case when c.num_medias 1 then to_char(sum(case when nota_m2 is null then 0 else 1 end),'') else '-' end as n2, case when c.num_medias 2 then to_char(sum(case when nota_m3 is null then 0 else 1 end),'') else '-' end as n3, case when c.num_medias 3 then to_char(sum(case when nota_m4 is null then 0 else 1 end),'') else '-' end as n4, case when c.num_medias 4 then to_char(sum(case when nota_m5 is null then 0 else 1 end),'') else '-' end as n5, sum(case when aprovado='0' and fez_exame'S' then 1 else 0 end) as a_fazer_exame, sum(case when fez_exame='S' then 1 else 0 end) as ja_fez_exame, sum(case when aprovado='1' then 1 else 0 end) as aprovados , f.* from sie_edicao e JOIN turmas t ON e.sedi_ano=t.sedi_ano and e.sedi_mes=t.sedi_mes and e.cod_curso=t.cod_curso JOIN turma_disciplinas d ON t.cod_turma=d.cod_turma JOIN professores p ON d.cod_professor=p.cod_professor JOIN disciplinas di ON d.cod_disciplina=di.cod_disciplina JOIN cursos c ON e.cod_curso=c.cod_curso JOIN turma_alunos ta ON d.cod_turma=ta.cod_turma and d.cod_disciplina=ta.cod_disciplina LEFT OUTER JOIN notas n ON t.cod_curso=n.cod_curso and ta.matricula=n.matricula and ta.cod_disciplina=n.cod_disciplina -- LEFT OUTER JOIN
Re: [pgbr-geral] Join com função
Olá, 2009/12/21 Rudinei Dias rudinei.d...@gmail.com *A função completa (FUNCIONAL)* -- DROP FUNCTION fn_verifica_lcto_ficha_avaliacao(integer, integer, integer); CREATE OR REPLACE FUNCTION fn_verifica_lcto_ficha_avaliacao( INOUT pCodTurma integer, INOUT pCodDisciplina integer, INOUT pCodProfessor integer, OUT oPercLancadoB1 numeric, OUT oPercLancadoB2 numeric, OUT oPercLancadoB3 numeric, OUT oPercLancadoB4 numeric ) RETURNS SETOF record AS $BODY$DECLARE recTurma RECORD; -- para utilização em consultas recLctos RECORD; -- para utilização em consultas vContINTEGER; BEGIN -- ESTA FUNÇÃO VERIFICA A SITUAÇÃO DE PENDÊNCIA DO MODELO DE AVALIACAO NO PLANO DE ENSINO -- com a especificação que é só para um bimestre em específico select t.* into recTurma from sie_turma_disciplinaxprofessor td join turmas t on td.cod_turma=t.cod_turma where t.cod_turma=pCodTurma and td.cod_disciplina=pCodDisciplina and td.cod_professor=pCodProfessor limit 1; -- select td.*, t.* from sie_turma_disciplinaxprofessor td join turmas t on td.cod_turma=t.cod_turma where t.cod_turma=1859 and td.cod_disciplina=496 and td.cod_professor=84; if not found then RAISE NOTICE 'Turma não localizada'; return; end if; RAISE NOTICE 'Turma localizada % % %', recTurma.cod_curso, recTurma.sedi_ano, recTurma.sedi_mes; vCont:=0; for recLctos IN select avg( case when sfar_av_nc='S' then 1 when sfar_nota is not null then 1 else 0 end )*100 as lancada , pa.spensa_bimestre -- , fr.*, ta.*, pa.* --, pe.* from sie_planos_ensino pe join turma_alunos ta on pe.cod_turma=ta.cod_turma and pe.cod_disciplina=ta.cod_disciplina and ativo='S' left outer join sie_planos_ensino_avaliacao pa on pe.spens_id=pa.spens_id left outer join sie_ficha_avaliacao_registro fr on pa.spens_id=fr.spens_id and pa.spensa_bimestre=fr.spensa_bimestre and pa.spensa_tipo=fr.spensa_tipo and pa.spensa_data_prevista_seq=fr.spensa_data_prevista_seq and ta.cod_turma_aluno=fr.cod_turma_aluno where pe.cod_disciplina=pCodDisciplina and pe.cod_professor=pCodProfessor and pe.cod_curso=recTurma.cod_curso and pe.sedi_ano=recTurma.sedi_ano and pe.sedi_mes=recTurma.sedi_mes -- and ta.cod_turma_aluno=159607 group by 2 order by 2 loop if recLctos.spensa_bimestre = 1 then oPercLancadoB1:=trunc(recLctos.lancada,1); end if; if recLctos.spensa_bimestre = 2 then oPercLancadoB2:=trunc(recLctos.lancada,1); end if; if recLctos.spensa_bimestre = 3 then oPercLancadoB3:=trunc(recLctos.lancada,1); end if; if recLctos.spensa_bimestre = 4 then oPercLancadoB4:=trunc(recLctos.lancada,1); end if; vCont:=vCont+1; end loop; return next; RAISE NOTICE ' Encontrados %',vCont; END;$BODY$ LANGUAGE 'plpgsql' VOLATILE; *A consulta completa (sem o join com a função e com a devida alteração no group by a consulta é funcional e está correta)* select 'cadLancNotas.php?semestre='||t.sedi_ano||'-'||t.sedi_mes||'codProfessor='||d.cod_professor||'codTurma='||t.cod_turma||'codDisciplina='||d.cod_disciplina||'action=LISTA_TURMAS' as link, e.sedi_ano, e.sedi_mes, e.sedi_periodo_identificacao, p.nome, c.cod_curso, c.curso, di.cod_disciplina, di.disciplina, t.turma, t.cod_turma, c.num_medias, count(ta.matricula) as matriculas, case when c.num_medias 0 then to_char(sum(case when nota_m1 is null then 0 else 1 end),'') else '-' end as n1, case when c.num_medias 1 then to_char(sum(case when nota_m2 is null then 0 else 1 end),'') else '-' end as n2, case when c.num_medias 2 then to_char(sum(case when nota_m3 is null then 0 else 1 end),'') else '-' end as n3, case when c.num_medias 3 then to_char(sum(case when nota_m4 is null then 0 else 1 end),'') else '-' end as n4, case when c.num_medias 4 then to_char(sum(case when nota_m5 is null then 0 else 1 end),'') else '-' end as n5, sum(case when aprovado='0' and fez_exame'S' then 1 else 0 end) as a_fazer_exame, sum(case when fez_exame='S' then 1 else 0 end) as ja_fez_exame, sum(case when aprovado='1' then 1 else 0 end) as aprovados , f.* from sie_edicao e JOIN turmas t ON e.sedi_ano=t.sedi_ano and e.sedi_mes=t.sedi_mes and e.cod_curso=t.cod_curso JOIN turma_disciplinas d ON t.cod_turma=d.cod_turma JOIN professores p ON d.cod_professor=p.cod_professor JOIN disciplinas di ON d.cod_disciplina=di.cod_disciplina JOIN cursos c ON e.cod_curso=c.cod_curso JOIN turma_alunos ta ON d.cod_turma=ta.cod_turma and d.cod_disciplina=ta.cod_disciplina LEFT OUTER JOIN notas n ON
[pgbr-geral] Restaurar Backup do 8.4 no 8.3
Pessoal... Precisamos restaurar um backup feito no Pg 8.4 para o 8.3 mas está dando erro de incompatibilidade no pg_restore Obs. A estrutura do banco de dados é exatamente igual. Alguem sabe de uma forma? Abraços e muito obrigado. Vanderlei Marcos Kichel cont...@setadigital.com.br ___ SetaDigital Comércio de Sistemas Gerenciais Ltda Rua Voluntários da Pátria, 1415 Sala 302 - Centro Cascavel - Paraná - Cep 85.812-160 Telefone: (45) 3222-7511 www.setadigital.com.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] Restaurar Backup do 8.4 no 8.3
2009/12/21 SetaDigital - Especialista em Lojas de Calçados cont...@setadigital.com.br: Pessoal... Precisamos restaurar um backup feito no Pg 8.4 para o 8.3 mas está dando erro de incompatibilidade no pg_restore Obs. A estrutura do banco de dados é exatamente igual. Alguem sabe de uma forma? Até onde sei não existe compatibilidade para restore de uma versão anterior. Tente fazer um dump utilizando texto puro e restaure com o psql eliminando as eventuais incompatibilidades detectadas. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Postgis - Erro Constraint
Caros, Possuo um BD com tabelas de informações com municípios, territórios de identidade, bacias hidrográficas etc. Até então este banco era alfa-numérico, agora precisamos inserir campos geo nele então adicionei as colunas geo: select addgeometrycolumn('','auxiliar_dados_gerais','adg_territorio_identidade', 'adg_teid_poly',4618,'MULTIPOLYGON',2) depois importei o shape: shp2pgsql Municipios_Territorios_Identidade munigeo2municipios.sql dei carga em uma tabela com o shape na íntegra: psql bd_meubanco municipios3.sql depois fui transferir a coluna geo da tabela gerada para a tabela já existente update auxiliar_dados_gerais.adg_territorio_identidade set adg_teid_poly = fora.the_geom from public.tigeo fora join auxiliar_dados_gerais.adg_territorio_identidade dentro on fora.codigo = dentro.adg_teid_id where fora.codigo = auxiliar_dados_gerais.adg_territorio_identidade.adg_teid_id aí acusou o seguinte erro: ERROR: new row for relation adg_territorio_identidade violates check constraint enforce_srid_adg_teid_poly se eu excluir esta constraint eu faço a inserção porém tenho problemas com a topologia . se alguém puder ajudar eu agradeço. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Off Top FreeLancer
Ola galera estou necessitando em uma Trigger URGENTE se alguem se habilitar por favor me comunique em PVT. Luiz Henrique Sales Net2tel email: luizsa...@net2tel.com.br http://www.net2tel.com.br Phone: +55-11-2824-6489 Cell :+55-11-6368-7615 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Restaurar Backup do 8.4 no 8.3
2009/12/21 Osvaldo Kussama osvaldo.kuss...@gmail.com Até onde sei não existe compatibilidade para restore de uma versão anterior. Tente fazer um dump utilizando texto puro e restaure com o psql eliminando as eventuais incompatibilidades detectadas. E eu ainda executaria o pg_dump do 8.4 acessando a base do 8.3... normalmente quando migro versão faço dessa forma... não sei se é a mais correta mas não tenho problemas... não fiz essa migração ainda (do 8.3 para 8.4) mas em outras versões funcionou sem problemas (8.0 p/ 8.1, 8.1 p/ 8.2 e 8.2 p/ 8.3). -- Fabrízio de Royes Mello Blog sobre TI: http://fabriziomello.blogspot.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] OMNITI está contratando DBAs postgr es
Le samedi 19 décembre 2009 à 20:33 -0200, Leonardo Cezar a écrit : http://omniti.com/is/hiring/database-administrator Patrocinam visto, ou bancam trabalho à distância? É que já desanimei de responder anúncios ‘a frio’… -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 9406 7191 gTalk: xmpp:leand...@jabber.org +55 (11) 3854 7191 ICQ: aim:GoIM?screenname=61287803 +55 (11) 5546 8716msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Trigger com timestamp
Ola amigos oque pode estar de errado nessa declaração ? SELECT usu_id, cam_id, tlg_id, tel_id, new.duration , tsd_data_spool, timestamp new.data_agi - interval new.duration sec ,new.data_agi FROM tosend where tsd_id = cast(new.clid as integer); Mas se eu coloco os valores como abaixo a função não da erro! SELECT usu_id, cam_id, tlg_id, tel_id, new.duration , tsd_data_spool, timestamp ''2009-12-21 18:00:00'' - interval '' 20 sec'' ,new.data_agi FROM tosend where tsd_id = cast(new.clid as integer); Erro: ERRO: erro de sintaxe em ou próximo a $2 LINE 1: ...tlg_id, tel_id, $1 , tsd_data_spool, timestamp $2 - inte... ^ SQL state: 42601 Contexto: SQL statement in PL/PgSQL function ligacoes near line 16 Grato pela ajuda Luiz Henrique Sales Net2tel email: luizsa...@net2tel.com.br http://www.net2tel.com.br Phone: +55-11-2824-6489 Cell :+55-11-6368-7615 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Restaurar Backup do 8.4 no 8.3
2009/12/21 Fabrízio de Royes Mello fabriziome...@gmail.com: 2009/12/21 Osvaldo Kussama osvaldo.kuss...@gmail.com Até onde sei não existe compatibilidade para restore de uma versão anterior. Tente fazer um dump utilizando texto puro e restaure com o psql eliminando as eventuais incompatibilidades detectadas. E eu ainda executaria o pg_dump do 8.4 acessando a base do 8.3... normalmente quando migro versão faço dessa forma... não sei se é a mais correta mas não tenho problemas... não fiz essa migração ainda (do 8.3 para 8.4) mas em outras versões funcionou sem problemas (8.0 p/ 8.1, 8.1 p/ 8.2 e 8.2 p/ 8.3). Sim, essa é a recomendação sempre que se migra para uma versão *posterior*, mas o que Vanderlei deseja é migrar para uma versão *anterior* (da 8.4 para a 8.3). 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] Trigger com timestamp
2009/12/21 Quick - Luiz Henrique quick...@gmail.com: Ola amigos oque pode estar de errado nessa declaração ? SELECT usu_id, cam_id, tlg_id, tel_id, new.duration , tsd_data_spool, timestamp new.data_agi - interval new.duration sec ,new.data_agi Senew.data_agi é um string representando um timestamp e new.duration é a quantidade de segundos creio que a sintaxe correta é: new.data_agi::timestamp - new.duration*'1 second'::interval FROM tosend where tsd_id = cast(new.clid as integer); Mas se eu coloco os valores como abaixo a função não da erro! SELECT usu_id, cam_id, tlg_id, tel_id, new.duration , tsd_data_spool, timestamp ''2009-12-21 18:00:00'' - interval '' 20 sec'' ,new.data_agi FROM tosend where tsd_id = cast(new.clid as integer); Erro: ERRO: erro de sintaxe em ou próximo a $2 LINE 1: ...tlg_id, tel_id, $1 , tsd_data_spool, timestamp $2 - inte... ^ SQL state: 42601 Contexto: SQL statement in PL/PgSQL function ligacoes near line 16 Não dá para dizer muito mais sem o contexto desse SELECT. De qualquer forma não seria pelo menos um SELECT INTO? 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] Postgis - Erro Constraint
2009/12/21 Alipio Dantas alipiodan...@gmail.com: Possuo um BD com tabelas de informações com municípios, territórios de identidade, bacias hidrográficas etc. Até então este banco era alfa-numérico, agora precisamos inserir campos geo nele então adicionei as colunas geo: select addgeometrycolumn('','auxiliar_dados_gerais','adg_territorio_identidade', 'adg_teid_poly',4618,'MULTIPOLYGON',2) depois importei o shape: shp2pgsql Municipios_Territorios_Identidade munigeo2 municipios.sql dei carga em uma tabela com o shape na íntegra: psql bd_meubanco municipios3.sql depois fui transferir a coluna geo da tabela gerada para a tabela já existente update auxiliar_dados_gerais.adg_territorio_identidade set adg_teid_poly = fora.the_geom from public.tigeo fora join auxiliar_dados_gerais.adg_territorio_identidade dentro on fora.codigo = dentro.adg_teid_id where fora.codigo = auxiliar_dados_gerais.adg_territorio_identidade.adg_teid_id aí acusou o seguinte erro: ERROR: new row for relation adg_territorio_identidade violates check constraint enforce_srid_adg_teid_poly se eu excluir esta constraint eu faço a inserção porém tenho problemas com a topologia . Não existe a cláusula JOIN no comando UPDATE [1]. Osvaldo [1] http://www.postgresql.org/docs/current/interactive/sql-update.html ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Restaurar Backup do 8.4 no 8.3
2009/12/22 Osvaldo Kussama osvaldo.kuss...@gmail.com Sim, essa é a recomendação sempre que se migra para uma versão *posterior*, mas o que Vanderlei deseja é migrar para uma versão *anterior* (da 8.4 para a 8.3). É verdade... foi mal a falta de atenção... Mas um dump em formato SQL deve resolver né (quem sabe tentar o pg_dump do 8.3 no 8.4... rsrsr... pode funcionar). -- Fabrízio de Royes Mello Blog sobre TI: http://fabriziomello.blogspot.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Restaurar Backup do 8.4 no 8.3
Ola pessoal Resolvi fazendo um dump plain com instrues de insero e boa. Obrigado pela ateno! Julio Marcelo Tofoli Analista de Sistemas www.setadigital.com.br SetaDigital Comrcio de Sistemas Gerenciais Ltda Telefone: (45) 3222-7511 Cascavel - Paran Fabrzio de Royes Mello escreveu: 2009/12/22 Osvaldo Kussama osvaldo.kuss...@gmail.com Sim, essa a recomendao sempre que se migra para uma verso *posterior*, mas o que Vanderlei deseja migrar para uma verso *anterior* (da 8.4 para a 8.3). verdade... foi mal a falta de ateno... Mas um dump em formato SQL deve resolver n (quem sabe tentar o pg_dump do 8.3 no 8.4... rsrsr... pode funcionar). -- Fabrzio de Royes Mello Blog sobre TI: http://fabriziomello.blogspot.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] Postgis - Erro Constraint
Osvaldo Kussama escreveu: 2009/12/21 Alipio Dantas alipiodan...@gmail.com: corte ERROR: new row for relation adg_territorio_identidade violates check constraint enforce_srid_adg_teid_poly se eu excluir esta constraint eu faço a inserção porém tenho problemas com a topologia . Qual definição da tabela? O que é esta restrição de verificação? Não existe a cláusula JOIN no comando UPDATE [1]. Existe! O _fromlist_ inclui tudo que pode aparecer na cláusula FROM. -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral