Re: Procedimiento almacenado

From: Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar>
To: Desarrollo Escuintla <desarrollo(dot)escuintla(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Procedimiento almacenado
Date: 2010-02-18 19:47:03
Message-ID: 4B7D9937.3020306@fmed.uba.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Desarrollo Escuintla wrote:
> Hola lista,
>
> tengo una tabla llamada "usuario", donde estan los usuarios autorizados para
> el ingreso al sistema,
> y tengo el siguiente SP, el cual lo encontre en la ayuda de PostgreSQL:
>
>
> CREATE OR REPLACE FUNCTION verificaclave(uname text, pass text)
> RETURNS boolean AS
> $$
> DECLARE passed BOOLEAN;
> BEGIN
> SELECT (password = $2) INTO passed
> FROM usuario
> WHERE username = $1;
>
> RETURN passed;
> END;
>
>
> Ahora,
> soy nuevo en el uso de esta BD, y quisiera modificar est SP, pero que me
> duelva "1" ó "0" respectivamente,
> si la clave es correcta o incorrecta,
>
>
>
Hola "Desarrollo" :). Mira, cuando puedas evitar usar plpgsql, y usar
sql para tus funciones, mejor. La ejecucion de funciones hechas en pl
son "mas caras", y por lo que puedo ver, aqui se puede resolver usando
sql plano.

Algo como

CREATE OR REPLACE FUNCTION verifica_usuario(usr text, pass text)
returns integer
security definer
as
$$
select case when password = $2 then 1 else 0 end
from usuario where username=$1;
$$ language sql

Tarea para el hogar: ¿Que pasa si el usuario no existe?

HTH
Gerardo

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Desarrollo Escuintla 2010-02-18 20:31:15 Procedimiento almacenado
Previous Message Jonathan Finlay 2010-02-18 17:59:55 Re: Re: Replicar datos sin IP FIJA