Updating area/perimeter/length on Oracle Spatial

Is there a way to use the Area/Perimeter and Length Update tools from the Database Operation toolbox if the data is queried from Oracle Spatial? Currently, when I try to use the tool I get the message "SELECT statement returned no rows", and I can only get that far if I've connected to the database through the Settings -> Database -> Connect... option (in addition to the Oracle Interoperability connection I needed to query it).

If there's a way in the GSA to have these fields automatically updated when the geometry is altered, we'd be interested in that as well; but I'm curious why the tools aren't working for me, and why they would require a different connection than the Oracle 'graphical source'.

Thanks in advance!

Parents Reply Children
  • I'm using SelectSeries 1 (8.11.07.37). I noticed in the analyze window I have geometry_area, perimeter, and length, but these aren't stored in the database. I need them to persist so that other applications can access the information.

    In the wiki, I see:

    # Add a New Initial Value for the Property
    # key = editing | Synch Preference = OFF | Value Type = cexpression | Value = (SEE LIST BELOW)

    Since this is an initial value for the property, is it applied when the geometry is updated or only at creation? Also, what  does "Synch to Preference Cache" refer to?

    Sounds like there's no way to make the 'database operations' tools work on Oracle Spatial databases?

    Thanks

  • It is applied in the edit process. Most placements have a create, edit and annotate sequence.

     

     

  • Does this setup look right? I'm not having any luck with it so far. I've tried different permutations of the feature name- with and without the underscores, with and without the Collection part.

  • Please Make sure, you have:

    1) a "placing" key before "editing" (you can set an initial value if you want to, but it's not mandatory),

    2) then, only keep the feature name in the "editing" key cexpression string and not the collection name. So, if your feature collection name is "A_Collection", feature name is "A" and property name is "Area", then your editing expression will be: ([A.Area]) and not ([A_Collection.Area]).

    Please find the attached screenshot to better understand how it works.

    Thanks,

    Mohammad Masud
    Sr. Geo AE, Houston

  • Guessing from your screenshot, but it looks like you're using a feature that isn't a "Registered Oracle-Spatial Feature" as your example.

     I set up a test feature exactly like yours and it worked as expected. I configured one of my registered features as in the attached screenshot, and it does not update the area.

    Through testing I found that no matter what value I enter as the expression for the registered feature, it won't error- as if it's not even being evaluated. If I gave the unregistered feature an invalid expression, it populated the area with "Expression handler error: -1". 

    Is there a way to make Map provide detailed logging for this?

    update: To rule out problems caused by including/omitting underscores in my feature names, I created an unregistered feature collection called  B_TEST_AREA_Collection. The area was updated properly using the cexpression ([B_TEST_AREA.Area]). Grasping at straws here, I know. :)