Home » Server Options » Spatial » Trigger to calculate length
Trigger to calculate length [message #75815] Mon, 20 October 2003 05:58 Go to next message
Messages: 30
Registered: January 2003
Hi, i am a newbie to Oracle Spatial and Oracle itself.

My questions is, how do i write a trigger to calculate the length of and object and insert the value into one of the columns of the table?

I have tried the statement below, but it returns errors.

tablename char(30); /* a variable to keep table name
tablename:= Test; /* error occurs here, Test is the name of the table
:new.length:=sdo_geom.sdo_length(tablename.geoloc,user_sdo_geom_metadata); /* sdo_geom.sdo_length is the function that returns the length

Can someone help me out with my trigger here?
Re: Trigger to calculate length [message #75837 is a reply to message #75815] Wed, 08 September 2004 10:46 Go to previous message
Bryan Hall
Messages: 6
Registered: September 2004
Junior Member
This should work (I did not test it) or at least get you closer. Just replace TABLENAME with your tablename. I'm assuming the geometry column is named geometry:

create trigger TABLENAME_TG
before insert or update on TABLENAME FOR EACH ROW
/* sdo_geom.sdo_length is the function that returns the length */
:new.length:=SELECT SDO_GEOM.SDO_LENGTH(c.geometry, m.diminfo)
FROM TABLENAME c, user_sdo_geom_metadata m
WHERE m.table_name = 'TABLENAME' AND m.column_name = 'GEOMETRY';

Previous Topic: Does Oracle Spatial support floating point coordinates?
Next Topic: searching for an element in varray
Goto Forum:

Current Time: Tue Mar 28 02:38:56 CDT 2023