Hola José:

El vie., 31 de may. de 2019 a la(s) 06:10, José Vicente Zahonero García (
joviz...@hotmail.com) escribió:

> Hola, tengo esta función:
> CREATE OR REPLACE FUNCTION inserciones(trayecto varchar, tempo varchar,
> espacio numeric)
>  returns void AS $$
>
> declare
>
>      spaces integer;
>      hora integer;
>      minuto integer;
>      segundo integer;
>      resultado real;
>      tiempo_en_minutos real;
>      calorias real;
>
>
> begin
>
>     spaces := espacio*1000;
>     hora := cast(substring(tempo from 1 for 2));
>     minuto := cast(substring(tempo from 4 for 2));
>     segundo := cast(substring(tempo from 7 for 2));
>     hora := hora*3600;
>     minuto := minuto*60;
>     resultado := ((spaces/(hora+minuto+segundo))*3.6);
>     tiempo_en_minutos := ((hora+minuto+segundo)/60);
>     calorias := (70*0.21)*tiempo_en_minutos;
>
>     insert into datos (recorrido,tiempo,distancia,calorias,kmh,fecha)
> values (trayecto,tempo,spaces,calorias,resultado,current_date);
>
> end;
> $$ language 'plpgsql';
> Al ejecutarla me da el error:
> Unterminated dollar quote started at position 0 in SQL $$ language
> 'plpgsql';. Expected terminating $$
>

CREATE OR REPLACE FUNCTION public.inserciones(trayecto character varying,
tempo character varying, espacio numeric)
 RETURNS void
 LANGUAGE plpgsql
AS $function$
declare
     spaces integer;
     hora integer;
     minuto integer;
     segundo integer;
     resultado real;
     tiempo_en_minutos real;
     calorias real;
begin
    spaces := espacio*1000;
    hora := cast(substring(tempo from 1 for 2) as integer);
    minuto := cast(substring(tempo from 4 for 2) as integer);
    segundo := cast(substring(tempo from 7 for 2) as integer);
    hora := hora*3600;
    minuto := minuto*60;
    resultado := ((spaces/(hora+minuto+segundo))*3.6);
    tiempo_en_minutos := ((hora+minuto+segundo)/60);
    calorias := (70*0.21)*tiempo_en_minutos;

    insert into datos (recorrido,tiempo,distancia,calorias,kmh,fecha)
values (trayecto,tempo,spaces,calorias,resultado,current_date);
end

$function$;

Saludos

Reply via email to