February 14, 2014 at 5:45 am
Hey guys,
I have a 'situation' which I am hoping someone can help me with.
I need to get data from a Progress OPENEDGE 10.2B server and into SQL2012.
I have the drivers installed on the server (32 bit version whilst I am developing in SSDT) and I have set the solution->Configuration Properties->Debugging->Run64BitRuntime = False and so-far, so-good; I am able to connect to the server and export tables and run simple SELECT [columns] from
type extracts.
The problem I am running into is that there are text fields in Progress where the length of the text exceeds the SQL-width property that has been set in the Progress DBTOOLS configuration. When this happens it seems to crash the ODBC driver as I get an error and I am looking for a way round this without having to raise a Change Request with appliation support to update all the fields which are giving me an error.
I have changed the output from DT_NTEXT to DT_WSTR (4000) and this has not solved the issue. If I modify the query to limit the length of the output (i.e. instead of Select [Column].... I am doing SELECT left([column],20) or if I try to investigate the length of the text the driver still crashes because these transforms happen after the ODBC has extracted the information (or column metadata) from the source table.
Does anyone know how to 'fool' the query to restrict the data before it is passed downstream to the ODBC driver that does not require any programming or configuration on the Progress server.
TIA
Obiron
February 17, 2014 at 6:26 am
Hi Aaron,
I understand your dilemma. I also import from a version 9 database nightly into SQL. 10 is supposed to be coming soon here...
I'm afraid I can't offer much in the way of a workaround. This is always an issue when we do a dump/load of Progress. Rather than make Progress db changes, we trim the fields that cause the issue. In our case, there are just a couple of tables with some older data. Seems the manufacturing package does a better job of limiting that now.
When we first began the import process some years ago, we used txt files from Progress rather than direct query to the db. Adds a step, but possibly would allow you to better control what you input to SQL.
Bill
February 17, 2014 at 3:48 pm
Hi Bill,
Further playing around and the SUBSTR() function seems to work for me. Now just to deal with "?" in null date fields. Which eejit decided that nulls should be question marks. SQL just coughs up furballs all over the place, numerics, booleans, dates - grrrr
February 17, 2014 at 5:06 pm
If this is a one time export, have you tried going from Progress to Excel/Text/Access/etc. and then going into SQL?
Michael L John
If you assassinate a DBA, would you pull a trigger?
To properly post on a forum:
http://www.sqlservercentral.com/articles/61537/
February 18, 2014 at 6:23 am
Thanks Aaron. I'm planning on moving from an old DTS package to SSIS once we convert to 10. I will remember that.
Will a Data Conversion component catch those '?' characters? Thinking of the old ActiveX portion of the DTS package...
Bill
February 21, 2014 at 12:53 pm
Another Gotcha with Progress.
If one of the column names is a reserved word then you need to surround it in "Double Quotes" rather than [square brackets] as you would in T-SQL
Viewing 6 posts - 1 through 5 (of 5 total)
You must be logged in to reply to this topic. Login to reply