[pgbr-geral] Res: Res: Problemas com Procedure no Linux

2009-12-18 Por tôpico marcos thomaz
Olá Eduardo,
Antes de mais nada, gostaria de agradecer pela ajuda.
Bem, se eu pegar o select que mostrei e executar diretamente, ele funciona, e 
cria a tabela tmp_table_tbg_01 (como o esperado). O caso é que a mesma sintaxe, 
na procedure, não está executando. Dá justamente o erro indicando a necessidade 
de uma variável. O caso é que pela sintaxe, a procedure deveria estar criando 
essa tabela (e fazia isso no windows normalmente, mas agora no linux não tá 
funcionando). Não estou no trabalho hoje (estou em um dos clientes). Assim que 
voltar pra casa, retorno com o código da função.

Novamente muito obrigado.

[]'s

Marcos Thomaz




De: Eduardo Santos eduardo.edusan...@gmail.com
Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
Enviadas: Quinta-feira, 17 de Dezembro de 2009 17:34:17
Assunto: Re: [pgbr-geral] Res: Problemas com Procedure no Linux

Olá Marcos,

Esse erro normalmente indica que você esqueceu de declarar a variável 
tmp_table_tbg_01 no corpo da função. Tem como você colocar todo o código da 
função? Principalmente o cabeçalho (declare)?


2009/12/17 marcos thomaz marcosthom...@yahoo.com.br


Marcelo, antes de mais nada, obrigado pela ajuda.
Quanto a versão, de ambos os S.O's é a 8.2.0.


A mensagem de erro gerada é essa:


ERROR: syntax error at tmp_table_tbg_01
SQL state: 42601
Detail: Expected record variable, row variable, or list of scalar variables 
following INTO.
Context: compile of PL/pgSQL function ajustarptanual near line 15






A linha na procedure onde dá o erro é a seguinte:


select coalesce(localidade,26) as localidade, coalesce(categoria,34) as 
categoria, refmm, sum(valor) as valor into tmp_table_tbg_01 from 
func_valor_arrecadacao( vMes ) group by
 1,2,3;






O log:


2009-12-17 18:16:47 ERROR:  syntax error at tmp_table_tbg_01
2009-12-17 18:16:47 DETAIL:  Expected record variable, row variable, or list 
of scalar variables following INTO.
2009-12-17 18:16:47 CONTEXT:  compile of PL/pgSQL function ajustarptanual 
near line 15




[]'s


Marcos Thomaz










 De: Marcelo Costa marcelojsco...@gmail.com
Para: Comunidade PostgreSQL Brasileira
 pgbr-geral@listas.postgresql.org.br
Enviadas: Quinta-feira, 17 de Dezembro de 2009 16:28:50
Assunto: Re: [pgbr-geral] Problemas com Procedure no Linux


Olá


2009/12/17 marcos thomaz marcosthom...@yahoo.com.br

Pessoal, tenho um banco de dados que rodava numa máquina com Windows 2003, 
versão 8.2 do banco de dados. A empresa optou por modificar algumas coisas e 
substituímos o sistema operacional. Trocamos de Windows 2003 para Linux - 
Slackware. Mantivemos a versão do banco, porém, depois disso começou a surgir 
alguns erros em procedures que existiam no banco de dados, todos vinculados a 
sintaxe do tipo:


select coluna1, coluna2, coluna3 into NovaTabela from Tabela Where condição.




Esse tipo de instrução está funcionando se eu executar diretamente, mas 
dentro da procedure está dando erro e o banco não consegue executar essas 
procedures.  Alguém teria alguma
 idéia?


1. Se você enviar os logs do PostgreSQL e as mensagens de erro da tua 
procedure certamente te ajudaremos

2. Se vc descrever direitinho a versão do PostgreSQL no windows e a que você 
utiliza no linux também poderemos te ajudar mais.

Blz ?

Atte,

-- 
Marcelo Costa
www.marcelocosta.net
-
“You can't always get what want”, 

Doctor House in apology to Mike Jagger



Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - 
Celebridades - Música - Esportes
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Eduardo Santos
Analista de Sistemas

http://eduardosan.wordpress.com
http://twitter.com/eduardosan



  

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


Re: [pgbr-geral] Res: Res: Problemas com Procedure no Linux

2009-12-18 Por tôpico Osvaldo Kussama
2009/12/18 marcos thomaz marcosthom...@yahoo.com.br:
 Olá Eduardo,
 Antes de mais nada, gostaria de agradecer pela ajuda.
 Bem, se eu pegar o select que mostrei e executar diretamente, ele funciona,
 e cria a tabela tmp_table_tbg_01 (como o esperado). O caso é que a mesma
 sintaxe, na procedure, não está executando. Dá justamente o erro indicando a
 necessidade de uma variável. O caso é que pela sintaxe, a procedure deveria
 estar criando essa tabela (e fazia isso no windows normalmente, mas agora no
 linux não tá funcionando). Não estou no trabalho hoje (estou em um dos
 clientes). Assim que voltar pra casa, retorno com o código da função.


De acordo com o manual:
Tip:  Note that this interpretation of SELECT with INTO is quite
different from PostgreSQL's regular SELECT INTO command, wherein the
INTO target is a newly created table. If you want to create a table
from a SELECT result inside a PL/pgSQL function, use the syntax CREATE
TABLE ... AS SELECT. 
http://www.postgresql.org/docs/current/interactive/plpgsql-statements.html

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Res: Res: Problemas com Procedure no Linux

2009-12-18 Por tôpico marcos thomaz
Eu fiz isso pra resolver o problema já, mas não entendi porque não funciona no 
Linux, e no Windows funciona normal.

[]'s

Marcos Thomaz




De: Leonardo Cezar lhce...@gmail.com
Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
Enviadas: Sexta-feira, 18 de Dezembro de 2009 15:07:41
Assunto: Re: [pgbr-geral] Res: Problemas com Procedure no Linux

2009/12/17 marcos thomaz marcosthom...@yahoo.com.br:

 ERROR: syntax error at tmp_table_tbg_01
 SQL state: 42601
 Detail: Expected record variable, row variable, or list of scalar variables
 following INTO.
 Context: compile of PL/pgSQL function ajustarptanual near line 15


 A linha na procedure onde dá o erro é a seguinte:
 select coalesce(localidade,26) as localidade, coalesce(categoria,34) as
 categoria, refmm, sum(valor) as valor into tmp_table_tbg_01 from
 func_valor_arrecadacao( vMes ) group by 1,2,3;

Altere para:
-- Se a tabela tmp_table_tbg_01 nao existe então crie:
CREATE TEMP TABLE tmp_table_tbg_01(
  localidade   TEXT
  categoriaTEXT
  refmm TEXT
  valor   TEXT
);
-- Senao só altere a linha que deu erro por esta daqui:
INSERT INTO tmp_table_tbg_01
   SELECT coalesce(localidade,26)
   , coalesce(categoria,34)
   , refmm, sum(valor) as valor
  FROM func_valor_arrecadacao(vMes)
GROUP BY 1,2,3;


Abraço!

-Leo
-- 
Leonardo Cezar
http://www.aslid.org.br
http://postgreslogia.wordpress.com
___
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