Pyodbc соединение дает странную ошибку - PullRequest
0 голосов
/ 05 июля 2018

Я получаю странную ошибку при попытке подключиться к Teradata из Python Pyodbc.

Код, который я использовал

import pyodbc
pyodbc.pooling=False
conn=pyodbc.connect('DRIVER={ 
TeradataDriver16.20};DBCNAME=DBCNAME;UID=user_id;
PWD=Password;QUIETMODE=YES;database=databse;')

Указанное выше соединение успешно. Сейчас я пытаюсь выполнить следующий запрос

cursor = conn.cursor()
cursor.execute("SELECT TOP 10 * FROM DB_NAME")
tables = cursor.fetchall()    

Это приводит к следующей ошибке

Error: ('HY000', '[HY000] 䑛瑡䑡物捥嵴佛䉄⁃楬嵢唠楮潣敤挠湯敶瑲牥戠晵敦\u2072
癯牥汦睯\x00\x000\x00\x00\x00\x00\x00\x00\x00\x00\x00[\x00\x00\x00\x00\x00 
\x00\x00\x00\x00\x00\x00(\x00\x00\x00 (0) (SQLExecDirectW)') 

Буду признателен за любые указания по решению этой проблемы.

1 Ответ

0 голосов
/ 11 июля 2018

Я не могу воссоздать вашу ошибку с pyodbc. Не могли бы вы попробовать собственный официальный пакет Teradata 'teradata' и посмотреть, будете ли вы вести себя подобным образом.

pip install teradata

А потом

import teradata

udaExec = teradata.UdaExec (appName="HelloWorld", version="1.0",
            logConsole=False)

with udaExec.connect(method="odbc",system=DBCNAME,  
                     driver="TeradataDriver16.20",
                     database=DBCNAME, username=user_id,
                     password=Password) as session: 
    for row in session.execute("SELECT TOP 10 * FROM DB_NAME"):
        print(row)
...