maya
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
ot_rw_update_current_geofence(integer, character varying)
Parameters
Name
Type
Mode
in_idunit
integer
IN
in_geofences
character varying
IN
Definition
/* Actualiza las geocercas en las que se encuentra un vehiculo a modo de operacion merge SELECT ot_rw_update_current_geofence(30,'142990,143984); */ DECLARE _geofences_array int[] := string_to_array(in_geofences,','); var1 text; var2 text; var3 text; BEGIN _geofences_array := uniq(sort(_geofences_array)); PERFORM 1 FROM current_geofence WHERE idunit = in_idunit FOR UPDATE; DELETE FROM current_geofence WHERE idunit = in_idunit AND idgeoreference NOT IN (select unnest(_geofences_array)); INSERT INTO current_geofence (idunit,idgeoreference) SELECT in_idunit,unnest(_geofences_array)::int EXCEPT SELECT idunit,idgeoreference FROM current_geofence WHERE idunit = in_idunit; RETURN 0; EXCEPTION WHEN OTHERS THEN GET STACKED DIAGNOSTICS var1 = MESSAGE_TEXT, var2 = PG_EXCEPTION_DETAIL, var3 = PG_EXCEPTION_HINT; RAISE WARNING '% % %',var1,var2,var3; RETURN 0; END;