0

My customer uses a tool called IFS (an ERP system), which runs on Oracle (the customer runs 11.2). My job is to extract information from there using Microsoft SQL Server Integration Services (or SSIS). To do so, we're using the Attunity drivers for Oracle (default ODBC is too slow).

I added some new columns to an existing package today, by appending them at the tail of an existing query. Much to my surprise when I then tried joining the new column to a new table, it revealed no results whatsoever. As it turns out, the values in the column were not the values I expected. Some lengthy troubleshooting session later, I found the following.

Most of our IFS objects contain three columns at the end; OBJID, OBJVERSION, and OBJKEY. Something sinister is happening with these columns, though. They are pretty much always selected in the above order:

enter image description here

Querying Oracle yields all valid columns and data:

enter image description here

However, for some reason OBJID is not recognized as a valid column in SSIS, and refuses to show up as a column. Note how the data from Oracle does make its way into the resultset; just not in the right column. The actual data from that column is apparently dismissed altogether (in the above screenshot the column looks blank. I might simply have chosen a bad column to screenshot; it stil proves my point and highlights the core of the issue, though):

enter image description here

When checking the "Column" tab in SSIS, ROWID there is present, but the checkbox is not checked. Checking it manually does nothing.

enter image description here

We import another column called OBJID from SAP, also using SSIS, and that works fine. I am therefore suspecting the issue might be with the Attunity drivers, but cannot seem to figure out exactly what is going on.

I'm hoping someone might have encountered this before, and has a work around.

It's an interesting issue, that had me stumped for a good few hours. I am working around it, so have no immediate need for a resolution; the question is purely to try and satisfy my own curiosity.

I'd be thankful/grateful for any hints :)

SchmitzIT
  • 9,227
  • 9
  • 65
  • 92
  • In your last screenshot, `objid` is not ticked. Nothing sinister here. – Nick.Mc Sep 01 '17 at 03:43
  • 1
    If you are seeing the right data with the wrong label, it's entirely possible that you missed a comma out in your SQL. For example, this SQL will only display one column. It will be called C2, but it will contain the data from C1: `SELECT C1 C2 FROM Table`. All because of a missing comma – Nick.Mc Sep 01 '17 at 03:47
  • @Nick.McDermaid - It's not ticked, but should be. If I do tick it, nothing happens. Next time I open u the component, it will be unticked again. And the data is fine. I run the exact same query in Oracle and copy/paste it into SSIS. In Oracle it works, but the same query does not work in SSIS. I also changed the order of the columns; the issue is solely with the OBJID column. – SchmitzIT Sep 01 '17 at 06:12
  • That's all very strange but it's particularly strange for it to automatically untick it. Again... looking at your screenshots, the preview has a column named `objversion` which appears to actually contain the data in `objid`. The fact that SSIS is doing wierd unticking behaviour and shifting columns makes think that something is confusing it's metadata. If you inspect the metadata inside the data flow (right click the source / show advanced editor / input output properties, also double click the connecting line), how does that look? perhaps you could screenshot? – Nick.Mc Sep 01 '17 at 06:21
  • @Nick - I can try. I'm pretty swamped for now, but will see what I can do. But yes, the whole behaviour where things *ought* to work, but that particular column(name) just refusing to be part of the resultset is exactly why I posted. It simply shouldn't be happening. I initially assumed similar things like you raised; mis-spelled column name, missed a comma, or something like that. I even deleted everything and started from scratch. All without avail, lol. – SchmitzIT Sep 01 '17 at 07:22
  • @Nick.McDermaid - I also went through a number of other packages made months/years ago by colleagues, and they all show the exact same behaviour. I guess the main reason for raising the question was to hear whether anyone else experienced something similar; just to confirm it wasn't just my (lack of) sanity that did this. – SchmitzIT Sep 01 '17 at 07:24
  • I see. Sorry there are so many questions on here where people haven't done basic problem solving but I can see you've done your homework on this. – Nick.Mc Sep 01 '17 at 07:28
  • @Nick.McDermaid - No worries. I've certainly seen my share of questions that could have been answered with a simple Google search on SO :) – SchmitzIT Sep 01 '17 at 07:39

1 Answers1

0

I have had my share of bizzare issues popping up when using Attinuity connectors and have abandoned them once and for all when it proved to be non-reliable. Packages work sometimes, stops working the next run. I tweak some DFT and down goes the system, I would have to recreate from scratch sometimes.

The issue that you are facing may be a direct result of this as well. I would highly recommend to move over to 'Oracle Provider for OLE DB' which you can download from this link - http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html.

It would be a painful task I understand if there are lot of pacakges but it would be worth it.

VKarthik
  • 1,379
  • 2
  • 15
  • 30
  • Oracle Provider for OLEDB is just a wrapper around the Oracle native client. I agree that Attunity is not really necessary. I've done plenty of SSIS over Oracle without needing Attunity – Nick.Mc Sep 01 '17 at 03:48