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
  • 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. :)

     

  • Rlingle-

    It does not matter whether the feature is oracle spatial registered or not..but for your benefit, I have added an oracle spatial registered feature in the same schema anyway, exported the schema and drew a new feature in Bentley Map... and everything worked perfectly. Please see the attached screenshot...one segment showing the string in the schema, another showing that it is oracle registered and the last showing it has populated the area field.

    Please make sure your C-expression return value type is NOT set to "Double"! Also, try with an existing property, instead of creating a new one.

    HTH-

    Mohammad Masud
    Sr Geo AE, Houston

  • Thanks Mohammad, it's still not working for me, though.

    I've done all my testing on existing properties, detected by the GSA during registration. Changing the return type doesn't seem to change the behavior for me.

    To rule out problems caused by customizations we might have done, I created a new project and registered a single feature with an "area_size" column. I added the edit watcher to that property/column, exported and ran without any other changes.

    I don't want to drag this out in the forum if it's something with our configuration, so I'll put in a support request. I'm creating a new schema with a small feature set to try and help the support team reproduce the problem.

    Thanks,
    -Rob