Hola lista, ante todo gracias por cualquier comentario o sugerencia... Tengo esta función que tiene como parámetro de entrada un número, y luego devuelve ese número invertido...ejemplo...entro el 531 y tiene que devolver el 135, la función o ejercicio tiene como principal características que no puedo usar ningún tipo de función o tipo de dato para cadena...solo puedo usar tipos de datos y funciones numéricas...ya la hice...y cuando la debugeo me funciona bien, pero cuando la ejecuto me devuelve este error:
ERROR: invalid input syntax for integer: "31.0000000000000000" CONTEXT: PL/pgSQL function some_user.reverse_order(integer) line 18 at assignment la función es la siguiente... CREATE OR REPLACE FUNCTION some_user.reverse_order ( var integer ) RETURNS integer AS' DECLARE var_lgh integer ; var_div integer :=$1::integer; var_s integer :=1; result_e integer:=0; tf BOOLEAN := true; var_x integer; lth integer :=trunc(log($1))+1; -- variable_name datatype; BEGIN if $1>0 then BEGIN WHILE tf LOOP var_x:=lth-var_s; var_lgh:=div(var_div,power(10.0,var_x)); -- dividendo result_e:=result_e+var_lgh*power(10,var_s-1); var_div:=mod(var_div,power(10.0,var_x)); -- resto var_s:=var_s+1; IF var_s>lth THEN tf:=false; end if; END loop; END; ELSE IF $1=0 THEN RAISE NOTICE ''The entered parameter is zero, please provide a greater than zero value.''; ELSE RAISE EXCEPTION ''The entered parameter is less than zero, please provide a greater than zero value.''; end if; end if; return result_e::integer; END; 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER COST 100; una vez más gracias por cualquier comentario... Carlos