[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
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
Re: [pgbr-geral] Query com campos VARCHAR com/sem ASPAS SIMPLES
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
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