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)
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 |