El 12/08/11 18:28, Virginia escribió:
Buen día Lista!!!
Agregué una función en mi base de datos para calcular la distancia entre dos puntos, se ejecuta bien para efectos de agregarse como función, pero al momento de utilizarla me da un error, me pueden ayudar a saber por qué? qué es lo que estoy haciendo mal???
Esta es la función:

-- Function: calculo_distancia(numeric, numeric, numeric, numeric)

-- DROP FUNCTION calculo_distancia(numeric, numeric, numeric, numeric);

CREATE OR REPLACE FUNCTION calculo_distancia(numeric, numeric, numeric, numeric)
  RETURNS integer AS
$BODY$
DECLARE LATITUD_1 ALIAS FOR $1;
        LONGITUD_1 ALIAS FOR $2;
        LATITUD_2 ALIAS FOR $3;
        LONGITUD_2 ALIAS FOR $4;


BEGIN
    SELECT (acos(sin(radians(LATITUD_1)) * sin(radians(LATITUD_2)) +
    cos(radians(LATITUD_1)) * cos(radians(LATITUD_2)) *
    cos(radians(LONGITUD_1) - radians(LONGITUD_2))) * 6378) as resultado;
    RETURN resultado;

Hola, Virginia, he leído que ya te funciona, pero tengo dos preguntas que te pueden ayudar:

- ¿Por qué no escribirla en lenguaje SQL, en lugar de plpgsql? Es una función muy simple, no necesitas plpgsql para ello.
- Si tienes más funciones con necesidades similares ¿has mirado PostGIS?

    Saludos,

    Álvaro

--
Álvaro Hernández Tortosa


-----------
NOSYS
Networked Open SYStems

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a