Instalando el Teradata ODBC driver en Linux 64 (CentOS 6)

Por motivos que no vienen al caso, pero que están en cierto modo relacionados con esto, tuve que instalar el Teradata ODBC driver para Linux 64 en un CentOS 6.

Viendo la documentación, me pareció que había aspectos de la instalación que no estaban demasiado claros, cosa que pude comprobar después de consultar un poco la web. No obstante, como valiente que es uno, eso no me apartó del objetivo.

Lo primero, descargar el driver en http://downloads.teradata.com/download/connectivity/odbc-driver/linux

Es un “.tar.gz” que contiene los .rpm de tdicu (Teradata International Components for Unicode), tdgss (Teradata Generic Security Services) y tdodbc (el driver en sí).

Tras instalar tdicu, tdgss y tdodbc (rpm -ivh) es cuando vienen los puntos peliagudos:

Hay que copiar odbc.ini de /opt/teradata/client/15.00/odbc_64 a $HOME/.odbc.ini . Nótese que el fichero en $HOME debe ser ‘oculto’ comenzando con un punto: .odbc.ini

Una vez hecho esto, hay que editarlo para incluir el origen ODBC al cual queremos acceder (en nuestro caso, un Teradata 14.10 sobre SLES 11) agregando las entradas necesarias:

 

[ODBC Data Sources]
TD1410_SLES11=tdata.so
...

[TD1410_SLES11]
Driver=/opt/teradata/client/ODBC_64/lib/tdata.so
Description=Teradata 14.10 on SLES 11
DBCName=TD1410
...

Pero ahí no acaba todo, ya que nos quedan por fijar un par de variables de entorno sin las cuales la cosa no funciona.

Hay que fijar variables de entorno en .bash_profile:

#Teradata ODBC:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/teradata/client/15.00/odbc_64/lib
export LD_LIBRARY_PATH

NLSPATH=/opt/teradata/client/15.00/odbc_64/msg/%N.cat
export NLSPATH

Porque la instalación fija variables de entorno en /etc/profile y en /etc/csh.login y éstas apuntan al entorno erróneo. Es por eso que suelen aparecer los errores “Specified driver could not be loaded” y “Unable to get catalog string“.

Una vez hecho todo esto, sólo hay que probar:

[carlos@centos-6 bin]$ ./tdxodbc 

Enter Data Source Name: TD1410_SLES11
Enter UserID: carlos
Enter Password: 

Connecting with SQLConnect(DSN=TD1410_SLES11,UID=carlos,PWD=*)...

.....ODBC connection successful.

ODBC version        = -03.52.0000-
DBMS name           = -Teradata-
DBMS version        = -14.10.0002  14.10.00.02-
Driver name         = -tdata.so-
Driver version      = -15.00.00.03-
Driver ODBC version = -03.51-

(type quit to terminate adhoc) 
Enter SQL string : SELECT DATE;

Executing SQLExecDirect("SELECT DATE;")...

SQL Statement [1]: 1 rows affected.

Date 
2015-03-05 

Enter SQL string : quit

'quit' command detected

ODBC connection closed.
[carlos@centos-6 bin]$ 

Y… ¡éxito!

Saludos.

Carlos.

Anuncios

One Response to Instalando el Teradata ODBC driver en Linux 64 (CentOS 6)

  1. […] que tenemos instalado en el servidor CentOS 6 el driver ODBC de Teradata y como allí hay instalado un Oracle 11g, vamos a retomar el viejo tema de la conexión de Oracle a […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: