5 Replies Latest reply: Aug 26, 2011 2:46 AM by david penington RSS



      Currently in 9i and 10g we are using HSODBC for connections. We are getting ready to move to 11gR2 and have the following questions:

      Is HSODBC still available in 11g?

      If it is what is the difference between HSODBC and DG4ODBC?

      What makes one solution better than the other?

      Thanks in advance for your time and help!

      Dave Venus
        • 1. Re: HSODBC vs. DG4ODBC?

          In Oracle 10g DG4ODBC was called HSODBC, but for 32-bit Windows.

          DG4ODBC is a 32bit application and if you install it on a 64bit operating system the ODBC DSN is not found.

          Install DG4ODBC on a 32bit Windows machine. 64bit DG4ODBC is available for Oracle 11.2

          see this post
          • 2. Re: HSODBC vs. DG4ODBC?
            DG4ODBC is the follow up product of HSODBC. In releases up to 10.2 generic connectivity was called HSODBC whereas starting with 11g it is now called DG4ODBC.

            The major difference between both is DG4ODBC is now a real gateway. It can be installed separateley from the Oracle database (even on a separate machine). This makes it more flexible as you can choose a platform having a suitable ODBC driver for your foreign database.

            Another advantage is DG4ODBC supports more platforms then HSODBC did (for example 64bit Windows x86 pr HP Itanium) and on most 64bit platforms it is now a real 64bit application.
            • 3. Re: HSODBC vs. DG4ODBC?
              I still don't get it. HSODBC was up to 10g r2? DG4ODBC is from 11g? DG4ODBC is for free as it was with hsodbc?
              • 4. Re: HSODBC vs. DG4ODBC?
                Yes, the generic connectivity product was renamed to Database gateway for ODBC (DG4ODBC) from 11g onwards. It is also free in that it is included as part of your RDBMS license in the same way as 10g HSODBC.

                • 5. Re: HSODBC vs. DG4ODBC?
                  david penington
                  I have had one serious problem migrating from HSODBC to DG4ODBC, and two minor ones.

                  1. Using dg4odbc, "Any COMMIT or ROLLBACK issued in a PL/SQL cursor loop closes all open cursors,
                  which can result in the following error: ORA-1002: fetch out of sequence"
                  This prevents committing as each row in a cusror is processed - must commit after the whole set has been processed. There appears to be no other solution.

                  2. individual character strings have their length mis-represented when the Oracle character set is AL32UTF8, giving errors about values being too long for columns when moving data into tables in either direction. Setting HS_LANGUAGE = AL32UTF8 and HS_FDS_REMOTE_DB_CHARSET to the right value (I'm using AL32UTF8 also) should resolve this, but I'm still getting [Microsoft][ODBC SQL Server Driver]String data, right truncation {22001} from the dblink. No solution so far, except perhaps get the target columns made longer.

                  3. On 64 bit Windows, Ingres and MS-SQLServer ODBC drivers incorrectly implement the ODBC 64 bit standard and require HS_FDS_SQLLEN_INTERPRETATION = 4 in the HS init<SID>.ora.

                  The problem of column lengths being displayed three times as large as they really are (which occurs with HSODBC too) is addressed in 11.2
                  # For use:
                  # For and later use:

                  Edited by: David.Penington on 26/08/2011 00:45