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