in reply to Install DBD::ODBC for Teradata Connection

The Makefile.PL outputs several severe warnings in its run. How have you addressed each of them?

I'll repeat them here:

  1. Your LANG environment variable is set to "en_US.UTF-8" This is known to cause problems in some perl installations - even stopping this Makefile.PL from running without errors. If you have problems please try re-running with LANG unset or with the utf part of LANG removed.
  2. You provided ODBCHOME (/opt/app/d1car1m5/.perl/teradata/client/ODBC_64) which has no odbc_config (not unusual for older unixODBCs) but we've found an odbc_config on your PATH. It is unlikely the odbc_config specifications are going to match your specified ODBCHOME so this script is going to ignore your specified ODBCHOME. If you don't like this do something to remove odbc_config from your PATH or ensure there is an odbc_config in your provided ODBCHOME.
  3. Multiple copies of Driver.xst found in: /usr/lib64/perl5/site_perl/5. +8.8/x86_64-linux-thread-multi/auto/DBI/ /usr/lib64/perl5/vendor_perl/ +5.8.8/x86_64-linux-thread-multi/auto/DBI/ at Makefile.PL line 155. Us +ing DBI 1.621 (for perl 5.008008 on x86_64-linux-thread-multi) instal +led in /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/aut +o/DBI/

It seems that at least the compilation of your DBD does not work, because the symbol SQLFetch is not available. This may be because the wrong Perl is run, the wrong code got compiled or the wrong .so file gets loaded:

Can't load '/opt/app/d1car1m5/cpan/DBD-ODBC-1.48/blib/arch/auto/DBD/OD +BC/ODBC.so' for module DBD::ODBC: /opt/app/d1car1m5/cpan/DBD-ODBC-1.4 +8/blib/arch/auto/DBD/ODBC/ODBC.so: undefined symbol: SQLFetch at /usr +/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.

Find out which is the case and correct it.

Replies are listed 'Best First'.
Re^2: Install DBD::ODBC for Teradata Connection
by jamesgerard (Initiate) on Mar 31, 2014 at 14:20 UTC

    1) I changed the LANG env variable and reran the makefile but I get the same error.

    2) I followed the directions that I found which said to make that directory path ODBCHOME. I know that the makefile says that it can't find the odbc_config, but a little later on it says this.

    odbc_config not found - ok, there are other things I can do

    Still trying to guess ODBCHOME - looking for headers now trying

    /opt/app/d1car1m6/.perl/teradata/client/ODBC_64/include Found sql.h, sqlext.h, sqltypes.h in

    /opt/app/d1car1m6/.perl/teradata/client/ODBC_64/include

    Using ODBCHOME

    /opt/app/d1car1m6/.perl/teradata/client/ODBC_64

    This looks like a intersolve type of driver manager. You seem to have the official header files.

    So does this mean that the intersolve install was successful, I don't know. Is odbc_config looking for libodbc.so? I tried changing ODBCHOME to point to the lib where libodbc.so exists, but I still get the problem with odbc_config not found.

    3) There is a /usr/lib64/perl5/site_perl and a /usr/lib64/perl5/vendor_perl path to DBI? Does this mean that the DBI installation is not correct?