[pgbr-geral] Query com campos VARCHAR com/sem ASPAS SIMPLES

2013-02-14 Por tôpico mauriciobuffon
Olá, pessoal,

Acabei de assumir como responsável a manutenção de uma base de dados
PostgreSQL. Acontece que minha primeira tarefa foi realizar a migração dessa
base de dados de um servidor windows 2003 para um servidor debian squeeze.
De passo, atualizamos também a versão do postgresql - de 8.2.5 on
i686-pc-mingw32 para um 8.4.13 on x86_64-pc-linux-gnu.

Ao testar a aplicação após a migração, claro, alguns erros estão aparecendo.
Um deles, bastante traçoeiro.

Ao realizar a seguinte consulta a aplicação falha:

SELECT no_prod_unid FROM produtos WHERE id_prod_sit != 2 and cd_proddesc =
27

com a seguinte mensagem de erro:

ERROR: operator does not exist: character varying  integer
SQL state: 42883
Hint: No operator matches the given name and argument type(s). You might
need to add explicit type casts.
Character: 53

Até aqui, tranquilo. No banco, o campo 'id_prod_sit' da tabela 'produtos'
está definido como VARCHAR(1) e a query não utiliza aspas simples. Mas, o
que me chamou a atenção foi que no banco antigo esse erro não acontecia.
Então, executei a query tal qual acima através do querytool no banco antigo
e, voilá, funciona!

Já gastei umas 2 horas no google procurando alguma menção a campos VARCHAR
tratando aspas simples de forma opcional e nada.

Agradeço qualquer ajuda. Obrigado!




--
View this message in context: 
http://postgresql.1045698.n5.nabble.com/Query-com-campos-VARCHAR-com-sem-ASPAS-SIMPLES-tp5745210.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.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] Query com campos VARCHAR com/sem ASPAS SIMPLES

2013-02-14 Por tôpico Ricardo Gomes
Pelo que entendi, a coluna id_prod_sit é do tipo varchar, certo?
Tenta a query abaixo e veja se funfa! SELECT no_prod_unid FROM produtos WHERE 
id_prod_sit::integer != 2 and cd_proddesc = 27
 
Att!Ricado

-
ITIL Foundation Certified Professional
  Date: Thu, 14 Feb 2013 04:29:22 -0800
 From: mauricio.buf...@hotmail.com
 To: pgbr-geral@listas.postgresql.org.br
 Subject: [pgbr-geral] Query com campos VARCHAR com/sem ASPAS SIMPLES
 
 Olá, pessoal,
 
 Acabei de assumir como responsável a manutenção de uma base de dados
 PostgreSQL. Acontece que minha primeira tarefa foi realizar a migração dessa
 base de dados de um servidor windows 2003 para um servidor debian squeeze.
 De passo, atualizamos também a versão do postgresql - de 8.2.5 on
 i686-pc-mingw32 para um 8.4.13 on x86_64-pc-linux-gnu.
 
 Ao testar a aplicação após a migração, claro, alguns erros estão aparecendo.
 Um deles, bastante traçoeiro.
 
 Ao realizar a seguinte consulta a aplicação falha:
 
 SELECT no_prod_unid FROM produtos WHERE id_prod_sit != 2 and cd_proddesc =
 27
 
 com a seguinte mensagem de erro:
 
 ERROR: operator does not exist: character varying  integer
 SQL state: 42883
 Hint: No operator matches the given name and argument type(s). You might
 need to add explicit type casts.
 Character: 53
 
 Até aqui, tranquilo. No banco, o campo 'id_prod_sit' da tabela 'produtos'
 está definido como VARCHAR(1) e a query não utiliza aspas simples. Mas, o
 que me chamou a atenção foi que no banco antigo esse erro não acontecia.
 Então, executei a query tal qual acima através do querytool no banco antigo
 e, voilá, funciona!
 
 Já gastei umas 2 horas no google procurando alguma menção a campos VARCHAR
 tratando aspas simples de forma opcional e nada.
 
 Agradeço qualquer ajuda. Obrigado!
 
 
 
 
 --
 View this message in context: 
 http://postgresql.1045698.n5.nabble.com/Query-com-campos-VARCHAR-com-sem-ASPAS-SIMPLES-tp5745210.html
 Sent from the PostgreSQL - Brasil mailing list archive at Nabble.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] Query com campos VARCHAR com/sem ASPAS SIMPLES

2013-02-14 Por tôpico Ricardo Gomes
Retificando:SELECT no_prod_unid FROM produtos WHERE id_prod_sit::integer  2 
and cd_proddesc = 27

-
ITIL Foundation Certified Professional
 From: rlgome...@hotmail.com
To: pgbr-geral@listas.postgresql.org.br
Date: Thu, 14 Feb 2013 10:51:37 -0200
Subject: Re: [pgbr-geral] Query com campos VARCHAR com/sem ASPAS SIMPLES




Pelo que entendi, a coluna id_prod_sit é do tipo varchar, certo?
Tenta a query abaixo e veja se funfa!
 
SELECT no_prod_unid FROM produtos WHERE id_prod_sit::integer != 2 and 
cd_proddesc = 27
 
Att!
Ricado

-
ITIL Foundation Certified Professional
 
 Date: Thu, 14 Feb 2013 04:29:22 -0800
 From: mauricio.buf...@hotmail.com
 To: pgbr-geral@listas.postgresql.org.br
 Subject: [pgbr-geral] Query com campos VARCHAR com/sem ASPAS SIMPLES
 
 Olá, pessoal,
 
 Acabei de assumir como responsável a manutenção de uma base de dados
 PostgreSQL. Acontece que minha primeira tarefa foi realizar a migração dessa
 base de dados de um servidor windows 2003 para um servidor debian squeeze.
 De passo, atualizamos também a versão do postgresql - de 8.2.5 on
 i686-pc-mingw32 para um 8.4.13 on x86_64-pc-linux-gnu.
 
 Ao testar a aplicação após a migração, claro, alguns erros estão aparecendo.
 Um deles, bastante traçoeiro.
 
 Ao realizar a seguinte consulta a aplicação falha:
 
 SELECT no_prod_unid FROM produtos WHERE id_prod_sit != 2 and cd_proddesc =
 27
 
 com a seguinte mensagem de erro:
 
 ERROR: operator does not exist: character varying  integer
 SQL state: 42883
 Hint: No operator matches the given name and argument type(s). You might
 need to add explicit type casts.
 Character: 53
 
 Até aqui, tranquilo. No banco, o campo 'id_prod_sit' da tabela 'produtos'
 está definido como VARCHAR(1) e a query não utiliza aspas simples. Mas, o
 que me chamou a atenção foi que no banco antigo esse erro não acontecia.
 Então, executei a query tal qual acima através do querytool no banco antigo
 e, voilá, funciona!
 
 Já gastei umas 2 horas no google procurando alguma menção a campos VARCHAR
 tratando aspas simples de forma opcional e nada.
 
 Agradeço qualquer ajuda. Obrigado!
 
 
 
 
 --
 View this message in context: 
 http://postgresql.1045698.n5.nabble.com/Query-com-campos-VARCHAR-com-sem-ASPAS-SIMPLES-tp5745210.html
 Sent from the PostgreSQL - Brasil mailing list archive at Nabble.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
  ___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Query com campos VARCHAR com/sem ASPAS SIMPLES

2013-02-14 Por tôpico Euler Taveira
On 14-02-2013 10:29, mauriciobuffon wrote:
 ERROR: operator does not exist: character varying  integer
 SQL state: 42883
 Hint: No operator matches the given name and argument type(s). You might
 need to add explicit type casts.
 Character: 53
 
 Até aqui, tranquilo. No banco, o campo 'id_prod_sit' da tabela 'produtos'
 está definido como VARCHAR(1) e a query não utiliza aspas simples. Mas, o
 que me chamou a atenção foi que no banco antigo esse erro não acontecia.
 Então, executei a query tal qual acima através do querytool no banco antigo
 e, voilá, funciona!
 
 Já gastei umas 2 horas no google procurando alguma menção a campos VARCHAR
 tratando aspas simples de forma opcional e nada.
 
Os casts implícitos para TEXT foram removidos na versão 8.3 (vide [1]). Quanto
a aspas simples, elas sempre foram requeridas para campos texto (TEXT, VARCHAR
e CHAR) -- vide [2].

O que você deve fazer é corrigir a sua aplicação. A sua consulta ficará:

SELECT no_prod_unid FROM produtos WHERE id_prod_sit != '2' and cd_proddesc = 27


[1] http://www.postgresql.org/docs/current/static/release-8-3.html#AEN123497
[2]
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS


-- 
   Euler Taveira de Oliveira - Timbira   http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral