From: | Álvaro Hernández Tortosa <aht(at)nosys(dot)es> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: ayuda con función |
Date: | 2011-08-14 00:40:26 |
Message-ID: | 4E47197A.4000601@nosys.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Hugo César | 2011-08-15 19:53:18 | Duda acerca Tsearch con acentos |
Previous Message | Gabriel Hermes Colina Zambra | 2011-08-13 21:15:07 | Rv: RESPALDAR SCHEMAS DE CONSULTAS EN CASCADA Solucionado |