[pgbr-geral] Erro chamando Function: operator does not exist: date ~~ unknown

2008-02-29 Por tôpico Eduardo Bobsin Machado
Pessoal,


Estou recebendo uma mensagem de erro estranha quando faço a chamada de uma
function. Não encontrei no Google nada que me desse uma luz.
Isso funciona com um pg 8.1 e não funciona com o pg 8.3.

--
RuntimeException: CallableStatementCallback;
bad SQL grammar [{? = call message_sms_mt_consolidate(?)}]; 
nested exception is org.postgresql.util.PSQLException:
ERROR: operator does not exist: date ~~ unknown
--

Aqui vai um trecho da function...

--
CREATE OR REPLACE FUNCTION message_sms_mt_consolidate(data_limite timestamp
without time zone)
  RETURNS integer AS
$BODY$
DECLARE
mtrp RECORD;
mtrp_found INTEGER;
BEGIN
...
...
Blah blah blah...
...
...
RETURN 0;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
--

Idéias?


Eduardo Bobsin Machado

Human Mobile - Torpedos SMS
www.human.com.br
mail:   [EMAIL PROTECTED]
phone:  51 3346 8282 


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


Re: [pgbr-geral] Erro chamando Function: operator does not exist: date ~~ unknown

2008-02-29 Por tôpico Evandro Ricardo Silvestre
Eduardo Bobsin Machado wrote:
 Pessoal,


 Estou recebendo uma mensagem de erro estranha quando faço a chamada de uma
 function. Não encontrei no Google nada que me desse uma luz.
 Isso funciona com um pg 8.1 e não funciona com o pg 8.3.

 --
 RuntimeException: CallableStatementCallback;
 bad SQL grammar [{? = call message_sms_mt_consolidate(?)}]; 
 nested exception is org.postgresql.util.PSQLException:
 ERROR: operator does not exist: date ~~ unknown
 --

 Aqui vai um trecho da function...

 --
 CREATE OR REPLACE FUNCTION message_sms_mt_consolidate(data_limite timestamp
 without time zone)
   RETURNS integer AS
 $BODY$
 DECLARE
 mtrp RECORD;
 mtrp_found INTEGER;
 BEGIN
 ...
 ...
 Blah blah blah...
 ...
 ...
   RETURN 0;
 END;
 $BODY$
   LANGUAGE 'plpgsql' VOLATILE
   COST 100;
 --

 Idéias?
   
Envie o conteudo de blah blah blah para analisarmos, deve ser nele.
Um sugestão, faça a mesma chamada que a aplicação faz pelo pgAdmin, a 
mensagem de erro traz mais algumas informações uteis, como o número da 
linha que deu o problema. Isso pode te ajudar. Ai você só envia a linha 
com erro.

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


Re: [pgbr-geral] Erro chamando Function: operator does not exist: date~~ unknown

2008-02-29 Por tôpico sergio
Me parece que o problema que vc tem é semelhante ao que relatei por essa 
semana no forum.
No meu caso eu estava comparando uma data a um numero(o que funcionava na 
versão 7.3, mas não na 8.3)
Acho que você precisa definir o tipo de dado que está envolvido na operação 
com a data (ERROR: operator does not exist: date ~~ unknown)
Eu tive que reescrever.



- Original Message - 
From: Eduardo Bobsin Machado [EMAIL PROTECTED]
To: 'Comunidade PostgreSQL Brasileira' 
pgbr-geral@listas.postgresql.org.br
Sent: Friday, February 29, 2008 11:15 AM
Subject: [pgbr-geral] Erro chamando Function: operator does not exist: 
date~~ unknown


Pessoal,


Estou recebendo uma mensagem de erro estranha quando faço a chamada de uma
function. Não encontrei no Google nada que me desse uma luz.
Isso funciona com um pg 8.1 e não funciona com o pg 8.3.

--
RuntimeException: CallableStatementCallback;
bad SQL grammar [{? = call message_sms_mt_consolidate(?)}];
nested exception is org.postgresql.util.PSQLException:
ERROR: operator does not exist: date ~~ unknown
--

Aqui vai um trecho da function...

--
CREATE OR REPLACE FUNCTION message_sms_mt_consolidate(data_limite timestamp
without time zone)
  RETURNS integer AS
$BODY$
DECLARE
mtrp RECORD;
mtrp_found INTEGER;
BEGIN
...
...
Blah blah blah...
...
...
RETURN 0;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
--

Idéias?


Eduardo Bobsin Machado

Human Mobile - Torpedos SMS
www.human.com.br
mail: [EMAIL PROTECTED]
phone: 51 3346 8282


___
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] Erro chamando Function: operator does not exist: date ~~ unknown

2008-02-29 Por tôpico Eduardo Bobsin Machado

 Envie o conteudo de blah blah blah para analisarmos, deve ser nele.
 Um sugestão, faça a mesma chamada que a aplicação faz pelo pgAdmin, a
 mensagem de erro traz mais algumas informações uteis, como o número da
 linha que deu o problema. Isso pode te ajudar. Ai você só envia a linha
 com erro.
 
 Evandro

Evandro,
No pgAdmin a chamada funciona!
Mais diferenças: a versão do driver JDBC!
No ambiente onde não funciona, estou usando a versão 8.3-603 JDBC 3.
No ambiente onde funciona, uso alguma versão 8.1 ou 8.2. Sempre JDBC 3.
Vou testar com outro driver e posto o resultado.

Obrigado!

Eduardo Bobsin Machado


Human Mobile - Torpedos SMS
www.human.com.br
mail:   [EMAIL PROTECTED]
phone:   51 3346 8282

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


Re: [pgbr-geral] Erro chamando Function: operator does not exist: date ~~ unknown

2008-02-29 Por tôpico Eduardo Bobsin Machado

 Das Release Notes da versão 8.3:
 E.1.2.1. General
 - Non-character data types are no longer automatically cast to TEXT
 http://www.postgresql.org/docs/8.3/interactive/release-8-3.html
 
 Osvaldo

Sérgio e Osvaldo,
Realmente era esse o problema. Não havia percebido que na function havia
comparação de datas com LIKE. Alterei para date_trunc() e agora tudo
funciona.

Obrigado!


Eduardo Bobsin Machado


Human Mobile - Torpedos SMS
www.human.com.br
mail:   [EMAIL PROTECTED]
phone:   51 3346 8282

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