Re: Pasar parametro string a funcion en 7.4.8

From: Miguel Rodríguez Penabad <penabad(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Pasar parametro string a funcion en 7.4.8
Date: 2007-11-07 22:58:11
Message-ID: 95335e4e0711071458h37f2388r7f977a3d84031a16@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Si he entendido bien, quieres obtener cosas...
...where doc_id in (2,3)
es decir, donde el doc_id ES IGUAL AL NÚMERO 2 ó AL NÚMERO 3
¿y lo quieres hacer pasando como parámetro un TEXTO '2,3' ?????

Pues no lo estás haciendo bien, obviamente. Por eso te dará un error
al tratar de
comparar el número doc_id con el texto '2,3' (suponiendo que doc_id es
un número, ya que no das la descripción de la tabla).

Si estoy en lo cierto, puedes probar
a) SQL dinámico (construirte el select a partir de strings incluyendo
el parámetro)

b) Usar un array en el parámetro. Mira este ejemplo:

postgres=# create table test(id int);
CREATE TABLE
postgres=# insert into test values(2),(4);
INSERT 0 2
postgres=# select * from test;
id
----
2
4
(2 rows)

postgres=# select * from test where id in ('2,3'); <-----Falla porque
no son la lista del 2 y el 3
ERROR: invalid input syntax for integer: "2,3"
postgres=# select * from test where id = any ('{2,3}'::int[]); <---
Esto sí funciona
id
----
2
(1 row)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Rodríguez Penabad 2007-11-07 23:04:06 Re: Consulta Sobre Funcion
Previous Message Fernando Aguada 2007-11-07 22:40:27 Re: Consulta Sobre Funcion