PostgreSQL - Uso de parámetros en consulta

 
Vista:
sin imagen de perfil

Uso de parámetros en consulta

Publicado por Mayra (2 intervenciones) el 15/02/2018 23:42:08
Hola,

Necesito de su apoyo para saber cómo pasar un parámetro a mi consulta en postgresql, resulta que yo en MS SQL cuando hago una consulta con parámetros la hago de esta forma:

1
2
3
4
5
Declare
@parCategoria  varchar(50)
set @parCategoria='12asd54asd45561a5sd156as'
 
Select * from productos where categoria=@parCategoria

cómo podría hacer esto en postgresql?

Agradezco su apoyo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Uso de parámetros en consulta

Publicado por martin (121 intervenciones) el 16/02/2018 13:05:42
1
2
3
4
5
6
7
8
9
10
$$
DECLARE
      parCategoria BIGINT;
BEGIN
     parCategoria := '12312dwsdwsd';
 
    SELECT * FROM  productos where categoria=parCategoria;
 
END;
$$
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Uso de parámetros en consulta

Publicado por Mayra (2 intervenciones) el 16/02/2018 19:06:24
Martín muchas gracias por tu respuesta, pero sabes no he logrado pasar el parámetro, quizás sea algo muy simple, pero no logro saber qué esta mal, he trabajado mucho con sql y hacer esto es muy simple, pero en postgresql no lo he logrado hacer un paso de parámetros a la consulta :S hice exactamente lo que pusiste en el script, pero me envía un error. Te adjunto una pantalla por si tienes tiempo de revisarla y me puedas apoyar diciéndome qué estoy haciendo mal :(

Gracias por el apoyo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Uso de parámetros en consulta

Publicado por martin (121 intervenciones) el 17/02/2018 15:46:14
Perdón,lo que puse va dentro de un stored procedure, y si lo que queres es retornar un recordset en postgres es un poco mas estructurado que en ms sql server.

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE OR REPLACE FUNCTION pubic.mi_func() RETURNS SETOF productos
LANGUAGE 'plpgsql'
$$
DECLARE
      parCategoria BIGINT;
BEGIN
 
     parCategoria := '12312dwsdwsd';
 
    RETURN QUERY SELECT * FROM  productos where categoria=parCategoria;
 
END;
$$


De todos modos también si solo vas a trabajar con un solo query podes usar una sintaxis tipo:

1
2
3
CREATE FUNCTION getfoo(int) RETURNS foo AS $$
    SELECT * FROM foo WHERE fooid = $1;
$$ LANGUAGE SQL;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar