Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Problem refreshing an Oracle table in MapInfo that's been updated in Oracle

470360Oct 31 2008 — edited Nov 6 2008
Dear all

I am doing some digitising work in MapInfo Professional 8, using a table stored in Oracle 10.2g. I have completed the bulk of my digitising and the polygons have been written back to the Oracle database without any issues.

As I am working with several maps coving the same area, but from different dates, I have simply been copying the shapes from one field to another, for areas that are the same on other maps. This avoids having to digitise an area more than once.

Here is an example of my table:
map_index_id  original_map_publication_id  name_of_feature         geographical_coordinates
------------  ---------------------------  ---------------         ------------------------
5000840       200016                       NORTH STREET            MDSYS.SDO_GEOMETRY [1a]
5000841       200016                       NORTH STREET QUADRANT   MDSYS.SDO_GEOMETRY [2a]
5000843       200016                       OLD STEINE              MDSYS.SDO_GEOMETRY [3a]
5000955       200021                       NORTH STREET            null [1b]
5000956       200021                       NORTH STREET QUADRANT   null [2b]
5000957       200021                       OLD STEINE              null [3b]
The idea is that the geometry of 1a is copied to 1b, 2a to 2b and so on. The script I am using to do this, is as follows:
undefine name_of_feature_to_be_used
undefine name_of_feature_to_be_updated
UPDATE MAP_INDEX  B
SET (B.geographical_coordinates) =
(SELECT A.geographical_coordinates
FROM MAP_INDEX A
WHERE A.original_map_publication_id=&&original_map_to_be_used
AND A.name_of_feature='&&name_of_feature_to_be_used')
WHERE B.original_map_publication_id=original_map_to_be_updated
AND B.name_of_feature='&&name_of_feature_to_be_updated';
That works okay. The problem I have is that whenever I make changes to the geographical_coordinates column, which is an sdo_geometry column, the changes are not then being picked up by MapInfo Professional when I click refresh DBMS table in that program.

If I make additional changes in MapInfo and then save the table out, it simply wipes all the changes I have made in Oracle, using my above SQL script.

I believe what happens when a table is first made mapping in MapInfo, is that MapInfo takes the Oracle sdo_column: geographical_coordinates and links this to a MapInfo column called obj , since MapInfo seems to only allow the spatial column to be called obj. All other columns are brought in using their Oracle names. What I think it isn't doing though, is relinking this column at any point afterwards.

Am I correct and if so, does anyone have a away round this problem? I made my Oracle table "download table [link to Oracle]". Would keeping the table live, make any difference?

Kind regards

Tim

Comments

Processing
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Dec 4 2008
Added on Oct 31 2008
7 comments
728 views