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

2009-12-18 Thread 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 
Para: Comunidade PostgreSQL Brasileira 
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 

>
>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 
>Para: Comunidade PostgreSQL Brasileira
> 
>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 
>
>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


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

2009-12-18 Thread 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 
Para: Comunidade PostgreSQL Brasileira 
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 :

> 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


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

2009-12-18 Thread Osvaldo Kussama
2009/12/18 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.


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


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

2009-12-18 Thread Leonardo Cezar
2009/12/18 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.

Marcos, infelizmente não tenho um Windows fácil para fazer esse teste,
mas eu diria que o problema da migração foi outro e não exatamente
este, pois não faz sentido nenhum esse código funcionar no windows.

Se eu não fosse da área de TIC eu simplesmente diria que é impossível
esse código funcionar no windows.

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