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

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

Hi Ivan and everyone
Thank you for your reply. The geometries are not always the same. I have now found out what the problem is and how to solve it and I will explain this for the benefit of others.
When I update a spatial column for a row ,outside of MapInfo Professional 8, it is not picking up the updates.
When I update a non-spatial column for a row, outside of MapInfo Professional 8, it is picking up the updates.
When I update a non-spatial column and a geometry column for a row, outside of MapInfo Professional 8, it is picking up the updates for both columns.
Therefore a solution to my problem is to create an additional non-spatial column, which I update everytime I copy the geometry values. Then when I refresh the table in MapInfo, it will pick up the geometry changes. I do not understand why MapInfo will not pick up the updates to the spatial columns on their own but it is not doing this.
I did a test to see what would happen if I updated three rows where all three rows had there geometry values updated but only two rows had a non-spatial column value updated.
When opened up the table in MapInfo, using the following MapInfo SQL:
Select * From "user name here"."MAP_INDEX_FOR_MAPINFO_USE"
WHERE not GEOGRAPHICAL_COORDINATES Is Null
AND original_map_publication_id=200010
AND original_map_sheet_number_id=330010it brought in only the two rows whose non-spatial column had been updated. The row where only it's spatial column was amended, was not brought in. There was no other rows brought in because no other row for that publication and sheet had been updated.
Why this is occurring I do not know. It may be that issue was resolved in later versions of MapInfo. I am very happy to have found a solution to my problem. However I do feel it is something I should not be having to do in the first place, no matter how pleased I am to have found a solution.
Kind regards
Tim

Similar Messages

  • How to see the table in se11 that has been created in oracle 10g directly

    hi,
    how to see the table in se11 that has been created at SQL> prompt in oracle 10g directly ?
    is there any procedure to attache directly created table  into sap ?

    I think you have to create it in SE11 first. Although you can probably use native SQL to access it from an ABAP program.
    Rob

  • I have a 64gb ipad mini that's been updated to iOS 7.0.4. Lately it's been randomely shutting down in the middle of a screen.

    I have a 64gb ipad mini that's been updated to iOS 7.0.4. Lately it's been shutting down in the middle of almost any app and the screen goes black and then the apple logo appears as if I've done a hard reset. I've tried both soft and hard resets but with no results. Sometimes thes happens several times in a row. Does anyone have any ideas? I did read discussions and close running apps to make sure there is enough memory. In the past this sort of happened (rarely) and it just left an app and went to the home screen, but this is a total shutdown.

    I think you have covered most of everything that you could possibly do at this point other than restoring the iPad iOS software. That's what I would try now. If that doesn't fix it, make an appointment at an Apple Store and ask a genius to evaluate the problem for you.
    Use iTunes to restore your iOS device to factory settings

  • Issue with publishing an application that has been updated (application with multiple versions)

    We are using App-V 5.0 SP1.
    I have a package that will need to get patched whenever new security updates are released.  The first version of the application always works fine, but when I update the application and re-publish it, a normal user is unable to pull down the new version. 
    When this occurs I am able to get everything going by logging into the server with an admin account and performing  a sync (Get-AppvPublishingServer | Sync-AppvPublishingServer; Get-AppvClientApplication").  What is it about applications that
    have been updated that would cause this behavior?
    The issue is similar to what the hotfix below addresses, but since we are on 5.0 SP1 I am unsure if this applies still.
    http://support.microsoft.com/kb/2799153?wa=wsignin1.0
    You publish a Version 1 package of an application on a server
    You log on to the client by using a user account
    You confirm that the Version 1 package of Application Virtualization 5.0 is synched, and then you log off the client.
    You publish a Version 2 package of an application, and then you remove the Version 1 application
    You log on to the client by using a user account.
    The application is not published to the user

    Hello,
    Have you verified the event-logs if the attempt to publish the package is visible there (successful or failed)?
    Nicke Källén | The Knack| Twitter:
    @Znackattack

  • Displaying the rows that have been updated....

    SQL> select * from spr;
    EMP_NAME EMP_no age sex
    hry 45353 42 M
    spt 43436 34 M
    pen 34533 21 M
    aen 65475 33 M
    SQL> select * from sprfac;
    EMP_NAME EMP_no age sex Appraisal Extra_Time
    hry 45353 N N
    spt 43436 N N
    pen 34533 N N
    aen 65475 N N
    I have a problem regarding updating the sprfac table.
    What i need is to satisfy the following conditions and update the second table with values in the second table.
    I need to upadate the second table when:
    1. The emp_name and emp_no of first table matches with the second table and
    2. The Appraisal field and extra_time field should be 'N' in the second table and
    3. only if the values of age and sex are NULL.
    Let me explain in detail.
    My original table is sprfac. spr is Temporary Table.
    I have some data in flat files and i have loaded all the data into a temporary table using sqlloader. Now i need to update the second table.
    Originally the age and sex fields in the sprfac table are NULL. Once i update the age and sex fields in the sprfac table again if i do update it should not update the rows which have data in age and sex columns.
    Suggest me how to update multiple columns simultaneously or send me the code for the update statement if possible.
    NOTE: I have changed the tablenames and column names since i cannot keep the original tables here.
    And i got the following reply........
    update sprfac a
    set (a.age, a.sex) = (select b.age, b.sex from spr b
    where a.emp_name = b.emp_name
    and a.emp_no = b.emp_no
    and appraisal = 'N'
    and extra_time = 'N')
    where a.age is null
    and a.sex is null;
    Everything is working fine.
    Is there any way to send the name and age fields which have been updated of sprfac to a file.
    should i use cursors....
    Send me the code if possible....
    Thanks..........

    You can try similar to this, if you have oracle 9i. In 8i merge does not work. In that case u have cursor.
    merge into EMP e1
    using akg_emp e2
    on ( e2.empno = e1.empno AND e1.sal > 1000 AND <whatever condition on e1>)
    when matched then
    update set e1.sal = 100
    when not matched then
    insert ( empno, ename, job, mgr, hiredate, sal, comm, deptno )
    values ( e2.empno, e2.ename, e2.job, e2.mgr, e2.hiredate, e2.sal, e2.comm,
    e2.deptno )

  • Any Good Apps That Have Been Updated For iOS 4?

    So I'm trying to find some good apps that really take advantage of the iOS 4 new features. Was just curious if anyone's using an app that was recently updated with the notes that it supports iOS 4. I know Fandango does, but it doesn't really have any iOS 4 features built-in...
    http://www.youtube.com/watch?v=3ALrWA8KTOw

    Just checked (literally), not yet. :'( I really want Skype and Pandora to update. Those are my two ones that I'm waiting for.

  • IPhone cannot connect to server: I have one iPhone that has just been updated to 5.1.1 that now cannot receive email, other devices that have been updated continue to work!

    We run a SBS 2003 Exhange box, however since an over-the-air update this particular handset has refused to recieve mail from Exchange (apparently Yahoo had issues too).
    Authentication is fine, it will happily recognise the account if it is deleted and set up - once the user tries to recieve mail however it will annonce that the connection to the server failed.
    We have several other devices on the same iOS version and others below which are working fine!
    Mobile access is enabled along with all expected services with no errors being flagged in the event manager for this user - I'm not wondering what might be the cause! Something in his mail box that iOS 5.1.1 doesn't like?!
    Short of a backup/restore of the device I'm can't see anything to help...

    It would worth your asking in the Final Cut Pro X forum - someone else may have experienced the same problem.
    I assume you have already trashed Preferences/ByHost/com.apple.dotmac... (several files beginning with this) and (same path) com.apple.idisk - though I suspect the problem lies rather with the individual programs which are trying to access something on the non-existent iDisk.

  • Does the Apple USB Ethernet Adapter work with a MacBook Air that's been updated to Lion?

    I saw a comment at the online Apple store that the USB Ethernet Adapter didn't work with Lion. Anyone else have experience with the adapter?

    Just point the tech rep to the apple website that lists the Ethernet to USB system requirements as:
    "Overview
    The Apple USB Ethernet Adapter is a simple, one-piece external adapter that plugs into the USB 2.0 port of your MacBook Air to provide 10/100BASE-T performance. Simply plug your Ethernet cable into the RJ-45 connector — no external power is required. It’s small, light, easy to install, and even easier to use.
    Technical Details
         USB 2.0 with bus power
         10/100BASE-T (RJ-45 connector)
    What's in the Box
         Apple USB Ethernet Adapter with built-in 4.6-inch USB cable
    User's Guide
    System Requirements
         MacBook Air computer with available USB 2.0 port"
    Note that there is no mention of a specific OS requirement.......Cut and pasted from apple.com.

  • How do i install older versions of apps on an older iPhone that has been updated to latest version it supports?

    how do i install an older compatible version of pandora?  I have an older 3G iphone i want to stream music from. OS is 4.2.1 and basically nothing installs and the OS will not upgrade past that OS version.

    You could try this.
    On your PC - download the latest version of the App.
    Once downloaded, select the App for syncing to your Phone.
    You will get a message saying it is not compatible.
    If you are lucky it may offer a previous version as an alternative.
    Worth a try.  It has worked on several apps on my old version 2 iPod.

  • Does anyone know how to send an email to a "Group" on a device that has been updated to iOS-6, without having to individually add each recipient?

    Pre-update, you used to be able to send an email to one of your predefined "Groups" by merely typing the "Group" name into the address field.  Post-update, this no longer appears to work.  Post update, typing the "Group" name into the address field gets you absolutely nothing.  Now I seem to have to add each individual recipient into the address field, something I thought developing predefined "Groups" would save me from having to do each and every time.  Does anyone know of any viable solutions for this?

    You have to add each one, 1 at a time using the + button.

  • Can I re-install OS X v10.5.8 on a Mac that's been updated to OS X 10.6.x?

    I'm looking to buy a used 2007 or 2008 imac. For some reason none of them seem to come with the orig. install discs, & most have been updated to either Snow leopard, or Lion. (It may sound odd to want to do this, but I have an Epson 545 printer, & the "Epson Scan" works with Mac OS X 10.5.8, but not 10.6.x or 10.7.x). Would it be as simple as wiping the hard drive, & downloading OS X 10.5.8? TIA!

    You need to install 10.5.8 from a compatible install DVD onto a blank partition or drive; you don't necessarily need to erase the entire internal drive, but if you choose to repartition it, you may lose the ability to use Boot Camp.
    (74348)

  • After ios 7, apps that has been updated still remain in update list in App Store

    After updating to the ios 7, whenever I update my apps, even after it's been updated it still stays in the updated list in the App Store. This applies both to my iphone 5 and iPad mini. Is there a way to resolve this? Am I the only one facing this issue?

    If this is occurring with apps from multiple vendors, try a reset: Simultaneously hold down the Home and On buttons until the device shuts down. Ignore the off slider if it appears. Once shut down is complete, if it doesn't restart on it own, turn the device back on using the On button. In some cases it also helps to double click the Home button and close all apps BEFORE doing the reset.
    If from a single app, or apps from the same vendor, you may need to reach out to the vendor.
    I'm not having any issues with Magazine apps.

  • Export oracle table to excel

    Dear sirs,
    now i want to send oracle table to excel that is through forms 6i
    and i used ole2 package but i can send the column fields name and i want to put as 3 lines as a header for the table name and date
    anybody help me please
    Thanks in advance
    Yasser

    hi
    try this code.
    PROCEDURE test IS
    i_reporttitle VARCHAR2(200) := 'My excel';
    dno number(2);
    dn varchar2(14);
    dl varchar2(13);
    r number := 2;
    c number := 1;
    i_orientation VARCHAR2(200) := '1';
    i number :=1;
    /* definiton for commonly used variables and constants and exceptions */
    ExcelID ole2.obj_type;
    ExcelWorkBooksID ole2.obj_type;
    ExcelWorkBookID ole2.obj_type;
    ExcelWorkSheetsID ole2.obj_type;
    ExcelWorkSheetID ole2.obj_type;
    ExcelCellID ole2.obj_type;
    ExcelFontID ole2.obj_type;
    ExcelPageSetupID ole2.obj_type;
    ExcelArgs ole2.list_type;
    BEGIN
    ExcelID := ole2.create_obj('Excel.Application');
    ExcelWorkBooksID := ole2.get_obj_property(ExcelID, 'Workbooks');
    ExcelWorkBookID := ole2.invoke_obj(ExcelWorkBooksID, 'Add');
    ExcelWorkSheetsID := ole2.get_obj_property(ExcelWorkBookID, 'Worksheets');
    ExcelWorkSheetID := ole2.invoke_obj(ExcelWorkSheetsID, 'Add');
    ExcelPageSetupID := ole2.get_obj_property(ExcelWorkSheetID, 'PageSetup');
    ole2.set_property(ExcelPageSetupID, 'Orientation',i_orientation);
    ole2.release_obj(ExcelPageSetupID);
      loop
         go_block('dept');
    ExcelArgs := ole2.create_arglist;
    ole2.add_arg(ExcelArgs,i);
    ole2.add_arg(ExcelArgs,c);
    ExcelCellId := ole2.get_obj_property(ExcelWorkSheetId,'cells',ExcelArgs);
    ole2.destroy_arglist(ExcelArgs);
    ole2.set_property(ExcelCellId, 'Value', :dept.deptno);
    ExcelFontId := ole2.get_obj_property(ExcelCellId, 'Font');
    ole2.set_property(ExcelFontId, 'Bold', 'True');
    ole2.set_property(ExcelFontId, 'Size', '10');
    ole2.release_obj(ExcelFontId);
    ole2.release_obj(ExcelCellId);
    ExcelArgs := ole2.create_arglist;
    ole2.add_arg(ExcelArgs,i);
    ole2.add_arg(ExcelArgs,c+1);
    ExcelCellId := ole2.get_obj_property(ExcelWorkSheetId,'cells',ExcelArgs);
    ole2.destroy_arglist(ExcelArgs);
    ole2.set_property(ExcelCellId, 'Value', :dept.dname);
    ExcelFontId := ole2.get_obj_property(ExcelCellId, 'Font');
    ole2.set_property(ExcelFontId, 'Bold', 'True');
    ole2.set_property(ExcelFontId, 'Size', '10');
    ole2.release_obj(ExcelFontId);
    ole2.release_obj(ExcelCellId);
    ExcelArgs := ole2.create_arglist;
    ole2.add_arg(ExcelArgs,i);
    ole2.add_arg(ExcelArgs,c+2);
    ExcelCellId := ole2.get_obj_property(ExcelWorkSheetId,'cells',ExcelArgs);
    ole2.destroy_arglist(ExcelArgs);
    ole2.set_property(ExcelCellId, 'Value', :dept.loc);
    ExcelFontId := ole2.get_obj_property(ExcelCellId, 'Font');
    ole2.set_property(ExcelFontId, 'Bold', 'True');
    ole2.set_property(ExcelFontId, 'Size', '10');
    ole2.release_obj(ExcelFontId);
    ole2.release_obj(ExcelCellId);
         exit when :SYSTEM.LAST_RECORD = 'TRUE';
    next_record;
    i := i+1;
    end loop;
    ExcelArgs := ole2.create_arglist;
    ole2.add_arg(ExcelArgs,i+1);
    ole2.add_arg(ExcelArgs,1);
    ExcelCellId := ole2.get_obj_property(ExcelWorkSheetId,'cells',ExcelArgs);
    ole2.destroy_arglist(ExcelArgs);
    ole2.set_property(ExcelCellId, 'Value', 'END');
    ExcelFontId := ole2.get_obj_property(ExcelCellId, 'Font');
    ole2.set_property(ExcelFontId, 'Bold', 'True');
    ole2.set_property(ExcelFontId, 'Size', '10');
    ole2.release_obj(ExcelFontId);
    ole2.release_obj(ExcelCellId);
    ole2.set_property(ExcelID, 'Visible','TRUE');
    -- ... and release the allocated resources because they are no longer used by forms
    ole2.release_obj(ExcelWorkSheetID);
    ole2.release_obj(ExcelWorkSheetsID);
    ole2.release_obj(ExcelWorkBookID);
    ole2.release_obj(ExcelWorkBooksID);
    ole2.release_obj(ExcelID);
    END;try this code too.
    PROCEDURE FormToExcel IS
    i_reporttitle VARCHAR2(200) := 'My excel';
    dno number(2);
    dn varchar2(14);
    dl varchar2(13);
    r number := 2;
    c number := 1;
    i_orientation VARCHAR2(200) := '1';
    i number :=1;
    /* definiton for commonly used variables and constants and exceptions */
    ExcelID ole2.obj_type;
    ExcelWorkBooksID ole2.obj_type;
    ExcelWorkBookID ole2.obj_type;
    ExcelWorkSheetsID ole2.obj_type;
    ExcelWorkSheetID ole2.obj_type;
    ExcelCellID ole2.obj_type;
    ExcelFontID ole2.obj_type;
    ExcelPageSetupID ole2.obj_type;
    ExcelArgs ole2.list_type;
    BEGIN
    ExcelID := ole2.create_obj('Excel.Application');
    ExcelWorkBooksID := ole2.get_obj_property(ExcelID, 'Workbooks');
    ExcelWorkBookID := ole2.invoke_obj(ExcelWorkBooksID, 'Add');
    ExcelWorkSheetsID := ole2.get_obj_property(ExcelWorkBookID, 'Worksheets');
    ExcelWorkSheetID := ole2.invoke_obj(ExcelWorkSheetsID, 'Add');
    ExcelPageSetupID := ole2.get_obj_property(ExcelWorkSheetID, 'PageSetup');
    ole2.set_property(ExcelPageSetupID, 'Orientation',i_orientation);
    ole2.release_obj(ExcelPageSetupID);
      loop
    go_block('t');
    ExcelArgs := ole2.create_arglist;
    ole2.add_arg(ExcelArgs,i);
    ole2.add_arg(ExcelArgs,c);
    ExcelCellId := ole2.get_obj_property(ExcelWorkSheetId,'cells',ExcelArgs);
    ole2.destroy_arglist(ExcelArgs);
    ole2.set_property(ExcelCellId, 'Value', :t.a_number);
    ExcelFontId := ole2.get_obj_property(ExcelCellId, 'Font');
    ole2.set_property(ExcelFontId, 'Bold', 'True');
    ole2.set_property(ExcelFontId, 'Size', '10');
    ole2.release_obj(ExcelFontId);
    ole2.release_obj(ExcelCellId);
         exit when :SYSTEM.LAST_RECORD = 'TRUE';
    next_record;
    i := i+1;
    end loop;
    ExcelArgs := ole2.create_arglist;
    ole2.add_arg(ExcelArgs,i+1);
    ole2.add_arg(ExcelArgs,1);
    ExcelCellId := ole2.get_obj_property(ExcelWorkSheetId,'cells',ExcelArgs);
    ole2.destroy_arglist(ExcelArgs);
    ole2.set_property(ExcelCellId, 'Value', 'END');
    ExcelFontId := ole2.get_obj_property(ExcelCellId, 'Font');
    ole2.set_property(ExcelFontId, 'Bold', 'True');
    ole2.set_property(ExcelFontId, 'Size', '10');
    ole2.release_obj(ExcelFontId);
    ole2.release_obj(ExcelCellId);
    ole2.set_property(ExcelID, 'Visible','TRUE');
    -- ... and release the allocated resources because they are no longer used by forms
    ole2.release_obj(ExcelWorkSheetID);
    ole2.release_obj(ExcelWorkSheetsID);
    ole2.release_obj(ExcelWorkBookID);
    ole2.release_obj(ExcelWorkBooksID);
    ole2.release_obj(ExcelID);
    END;sarah
    Edited by: QGIRCO on Jan 20, 2010 12:59 AM

  • Record .txt to oracle table

    I need moving records from .txt to oracle table. It is used in a System Oracle, then I can not use the utl_file or sql-loader. This moving will do step by step.

    funny, that you get that short error. I get:
    select * from test
    ERROR at line 1:
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    KUP-00554: error encountered while parsing access parameters
    KUP-01005: syntax error: found "nobadfile": expecting one of: "column, debug, exit, fields, records"
    KUP-01007: at line 1 column 1
    ORA-06512: at "SYS.ORACLE_LOADER", line 19
    ORA-06512: at line 1so, remove the unknown word "nobadfile", and it works fine. thank god that I have the verbose error handler!

  • Insert /delete data from SAP Z table to Oracle table and opposite

    Hi,
    Can u help me write this FM from the SAP side?
    So, I have two tables ZTABLE in SAP and Oracle table ORAC.
    Let's put three columns in each of them, for example
    TEL1
    TEL2
    ADRESS
    NAME
    where TEL field is primary from ZTABLE to ORAC...
    (in FM there shoud be abap code for writing data in ZTABLE after we press some pushbutton made in sap screen painter..)
    for example, when we write new record in ZTABLE
    00
    112233
    Street 4
    Name1
    this data shoud be inserted in Oracle table ORAC.
    when we write new record in Oracle table for example
    01
    445566
    New Street
    Name2
    this data shoud be inserted in ZTABLE.
    Field TEL1 can be only of two values 01 or 02, other combination is not valid...
    I must have all data from Oracle table ORAC in ZTABLE and opposite.
    It should be the same scenario for DELETE...
    And this communication should be online between sap and table in oracle database...
    Can u help me from sap side? and give idea how to configure on oracle side??
    Thanks a lot,
    Nihad

    I dont know if we can directly connect to a oracle database ( wait for the answers from others on this )
    but in XI we have the JDBC adaptor to insert and retrieve data.
    so for the outbound from SAP the flow can be something like this (with XI in landscape):
    1) You have a screen to maintain a new entry / delete an entry
    2) On save , this record gets saved or deleted from the Ztable in SAP
    3)) In the same screen you can call a proxy class-method (generated using SPROXY transaction ) to send the record to XI.
    4) XI to format it and insert into the oracle table
    Mathews

Maybe you are looking for