[unixODBC-support] Antw: Re: unixODBC SLES / OpenSuSE Oracle ODBC

Martin Evans martin.evans at easysoft.com
Wed Oct 21 13:24:51 BST 2009


Keehan Mallon wrote:
> I am fully aware of the 32/64 bit ODBC Manager mess on 64-bit Windows. 
> It didn't help that they named them identically.
> 
> The unixODBC workaround I cited with the fix and some comments can be
> found here:
> 
> http://sourceforge.net/tracker/index.php?func=detail&aid=2260937&group_id=1544&atid=351544
> <http://sourceforge.net/tracker/index.php?func=detail&aid=2260937&group_id=1544&atid=351544>

interesting - thanks.

> I think we may need to go the 3rd party route going forward for 64-bit
> Oracle ODBC.  I think I would rather do that then roll back all the
> other work that we have done.
> 
> We use sqlplus as well, so I have always had the Oracle client
> installed, so that is what I am most familiar with.  If we use sqlplus
> (via the 64-bit Instant Client) is it best to use the EasySoft Oracle
> (OCI) driver?  What would be the business case for the more stand alone
> WP version?  Is it usually recommented when no native Oracle client is
> required?

Basically yes. If you don't have or can't get the Oracle client
libraries for your system then the WP driver is your only option and
that is why it was created. If you already have the oracle client
libraries you obviously have 2 choices but sticking with using the
client libraries is probably the best as these are a supported interface
from Oracle and should be reasonably immune to protocol changes.

Martin

> Thanks,
> 
> Keehan
> 
> 
> ------------------------------------------------------------------------
> *From:* Martin J. Evans <martin.evans at easysoft.com>
> *To:* Support for the unixODBC project
> <unixodbc-support at mailman.unixodbc.org>
> *Sent:* Tue, October 20, 2009 12:42:12 PM
> *Subject:* Re: [unixODBC-support] Antw: Re: unixODBC SLES / OpenSuSE
> Oracle ODBC
> 
> Keehan Mallon wrote:
>> Are you using 32-bit or 64-bit?  32-bit should work, but as Nick states,
>> skip the GUI.
> 
> agreed++ there is little to be gained from using the GUI assuming you
> can get it to work (and the driver supports it) and that is very
> difficult on some platforms. It is realtively trivial to edit the
> odbc.ini and odbcinst.ini files and all you need is an editor.
> 
>> For 64-bit the situation is much more complex.
>> I have not found a way to use 64-bit Oracle ODBC with Linux.  From what
>> I can put together, there is a bug in the Oracle 10.2 ODBC driver and it
>> is "not supported" from the Oracle side which apparently means Oracle
>> won't fix it.  You can connect to the database, but all queries fail
>> (http://forums.oracle.com/forums/thread.jspa?threadID=59110&tstart=5&messageID=2134631
> <http://forums.oracle.com/forums/thread.jspa?threadID=59110&tstart=5&messageID=2134631>
>>
> <http://forums.oracle.com/forums/thread.jspa?threadID=59110&tstart=5&messageID=2134631
> <http://forums.oracle.com/forums/thread.jspa?threadID=59110&tstart=5&messageID=2134631>>).
> 
> There are multiple ways of building an ODBC driver for 64bit platforms
> and these multiple ways came about because the MS specs for ODBC were
> originally written before 64bit machines existed and did not anticipate
> machines with larger pointer/long_int sizes. As a result, most ODBC
> driver writers read these specs literally when they said a 32bit
> quantity and then later MS changed "their version" (note it was passed
> to xopen) to introduce SQLLEN and SQLULEN which are 32bit values on
> 32bit platforms and 64bit values on 64-bit platforms. All hell breaks
> loose if you link an application or driver manager built one way with a
> driver built another way. I imagine this might be what causes the
> problem on 64bit platforms. It might be something else but the
> SQLLEN/SQLULEN issue remains. You can see a small explanation at:
> 
> http://www.martin-evans.me.uk/node/20#sqllen
> 
> and
> 
> http://www.easysoft.com/developer/interfaces/odbc/64-bit.html
> 
>> The bug has been worked around by unixODBC, but in the 2.2.15 branch
>> (again, from what I can tell) and this has not been released.
> 
> I'm not aware of that "bug" - would be interested to know what it was.
> 
> It really is not that difficult to build the latest unixODBC from cvs or
> the latest pre-release and use the same configuration options that the
> various distributions use. It is even possible to install it in a
> different place so you can be sure not to disturb your distribution updates.
> 
>>  You
>> should be able to get it from the repository, but I am trying to stick
>> with SUSE rpms which there are none for 2.2.15.  I can compile from
>> source, but I like keeping as stock as possible for upgrade/etc purposes.
> 
> That, I am afraid, is the nature of open source projects and their
> relationship with distributions which package open source projects -
> they are always behind (and sometimes don't even feedback fixes upstream
> - not that I'm saying SUSE don't). I maintain perl's DBD::ODBC module
> and the distributions which package DBD::ODBC are nearly always 2 or 3
> (even 4) versions behind and packages of unixODBC are still 2.2.12 on
> some Linux distributions (e.g. the ubuntu hardy heron I am running). In
> particular this causes me a big headache on 64bit platforms because
> odbc_config is not included and this is the only way to find out how
> unixODBC was built and prevents me from using the same compiler flags.
> In addition, in the perl environment, often the various components of
> the OS administration need Perl so changing it can be dangerous and
> running your own perl (with your own PERL5LIB) for your own scripts is
> not a bad idea.
> 
>> Version 11.x Oracle is even more strange.  32-bit is just fine, but the
>> 64-bit instant client no longer has an ODBC supplement at all.  I guess
>> I could always spend the ~$1000 to buy the Easysoft driver, but I'm
>> afraid I am going to have to go back to 32-bit to get Oracle supported
>> ODBC.  It is unfortunate because at this point, I have everything else
>> running 64-bit (FreeTDS (SQL Server client), MySQL, Teradata, unixODBC,
>> perl, perl-dbi, etc).
> 
> If Oracle produced and supported a working ODBC driver there would not
> be a market for ISVs to produce an Oracle ODBC Driver - they don't and
> so a market exists - it is not unreasonable for those ISVs to charge for
> their work. It is rather complicated to produce an ODBC driver that
> works on all 64bit unix systems and the SQLULEN/SQLLEN issue means you
> need 2 drivers. Add to that the fact that people still get mixed up on
> 64bit platforms thinking that they always need a 64bit driver when in
> fact it is dependent on how their application was built - that is the
> determining factor. The situation on Windows is not that dissimilar in
> that there are 2 odbc driver managers and 2 gui apps, one for 32bit
> drivers and one for 64bit apps - just do a search for that and mysql
> odbc and you'll realise what confusion that causes.
> 
>>
>> Am I missing something?
> 
> I'm not sure as I'm reliant on what you posted wrt oracle's driver
> needing a workaround in unixODBC and I have not had the opportunity to
> speak to Nick yet.
> 
> BTW, I work for Easysoft (if you don't know) and some people might think
> that taints my opinion.
> 
> Martin
> 
>> Keehan
>>
>> ------------------------------------------------------------------------
>> *From:* Nick Gorham <nick.gorham at easysoft.com
> <mailto:nick.gorham at easysoft.com>>
>> *To:* Support for the unixODBC project
>> <unixodbc-support at mailman.unixodbc.org
> <mailto:unixodbc-support at mailman.unixodbc.org>>
>> *Sent:* Tue, October 20, 2009 8:55:53 AM
>> *Subject:* Re: [unixODBC-support] Antw: Re: unixODBC SLES / OpenSuSE
>> Oracle ODBC
>>
>> Till Brinkmann wrote:
>>> Re,
>>> what does it mean ?.
>>> Is it impossible to use unixODBC with openSuSE and Oracle ?
>>>
>>>
>> No, just that without a GUI setup lib you can't use the GUI part of
>> unixODBC. Its just a matter of editing the odbc.ini and odbcinst,ini
> files.
>>
>> -- Nick


More information about the unixODBC-support mailing list