2017-01-31 10 views
0

Мне нужно подключиться к базе данных Teradata с помощью python. Я использовал следующий код:Проблема Подключение к Teradata с использованием Python

import pyodbc 
import teradata 



cnxn = pyodbc.connect('DRIVER={Teradata};SERVER=<*ServerName*>;DATABASE=<*Database Name*>;UID=<*User ID*>;PWD=<*Password*>',ansi=True, autocommit=True) 

cur = cnxn.cursor() 

Но на исполнение, я получаю сообщение об ошибке, как:

Error: ('28000', '[28000] [Teradata][ODBC Teradata Driver] Not enough information to log on (0) (SQLDriverConnect); [28000] [Teradata][ODBC Teradata Driver] Not enough information to log on (0)')

Что я здесь отсутствует? Что еще нужно включить для настройки соединения?

Кроме того, есть ли другой способ настройки соединения. При взгляде, я столкнулся с teradata.UdaExec(). Можно ли это использовать?

+2

connectionstrings.com страница [здесь] (https://www.connectionstrings.com/teradata/), кажется, предлагают использовать 'DBCName =' вместо 'SERVER ='. Вы пробовали это? –

+0

Вы подключаетесь с сервера Linux? –

ответ

0

Следующие работы находятся на сервере CentOS Linux.

создать файл с содержимым ниже в любом файле (скажем odbc.ini)

[ODBC Data Sources] 
my_data_source=tdata.so 

[my_data_source] 
Driver=/path/to/teradata/drivers/tdata.so 
DBCName=<td_hostname> 
LastUser=<user_name> 
Username=<user_name> 
Password=<password> 
Database=<default_database> 
DefaultDatabase=<default_database> 
TDMSTPortNumber=<teradata_port> 

набор ODBCINI переменной на пути Odbc файла

export ODBCINI=/file/to/path/of/odbc.ini 

Примечание: Вы можете пропустить установка переменной env ODBCINI путем создания файла odbc.ini в домашнем каталоге, т.е. /home/user/.odbc.ini (обратите внимание, что .odbc.ini - это скрытый файл с префиксом точки в имени файла)

теперь для подключения к Teradata используйте приведенный ниже фрагмент.

import pyodbc 
pyodbc.pooling = False 
conn = pyodbc.connect('DSN=my_data_source',ansi=True, autocommit=True) 
Смежные вопросы