[pgbr-geral] Problemas com stored procedure:

2009-12-21 Por tôpico Bruno Sales
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 Por tôpico Fabrízio de Royes Mello
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:

2009-12-21 Por tôpico JotaComm
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.

2009-12-21 Por tôpico Bruno Sales
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

2009-12-21 Por tôpico Bruno Sales
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 Por tôpico Osvaldo Kussama
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

2009-12-21 Por tôpico Nelson Gonzaga
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

2009-12-21 Por tôpico Everson Barbosa
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

2009-12-21 Por tôpico JotaComm
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

2009-12-21 Por tôpico Everson Barbosa
 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 Por tôpico Osvaldo Kussama
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

2009-12-21 Por tôpico JotaComm
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

2009-12-21 Por tôpico Everson Barbosa
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

2009-12-21 Por tôpico Rudinei Dias
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

2009-12-21 Por tôpico JotaComm
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

2009-12-21 Por tôpico Rudinei Dias
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

2009-12-21 Por tôpico Rudinei Dias
*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

2009-12-21 Por tôpico JotaComm
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

2009-12-21 Por tôpico SetaDigital - Especialista em Lojas de Calçados
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 Por tôpico Osvaldo Kussama
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

2009-12-21 Por tôpico Alipio Dantas
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

2009-12-21 Por tôpico Quick - Luiz Henrique
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 Por tôpico Fabrízio de Royes Mello
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

2009-12-21 Por tôpico Leandro Guimarães Faria Corcete DUTRA
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

2009-12-21 Por tôpico Quick - Luiz Henrique
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 Por tôpico Osvaldo Kussama
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 Por tôpico Osvaldo Kussama
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 Por tôpico Osvaldo Kussama
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-21 Por tôpico Fabrízio de Royes Mello
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

2009-12-21 Por tôpico jmtof...@setadigital.com.br




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

2009-12-21 Por tôpico Euler Taveira de Oliveira
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