简体   繁体   English

Pyodbc连接给出奇怪的错误

[英]Pyodbc connection giving strange error

I am getting strange error while trying to connect to Teradata from Python Pyodbc. 尝试从Python Pyodbc连接到Teradata时出现奇怪的错误。

The code i used 我使用的代码

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

The above connection is successful. 上面的连接成功。 Now I am trying to run the below query 现在,我正在尝试运行以下查询

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

This results in following error 这导致以下错误

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)') 

Any pointers in solving this would be appreciated. 解决该问题的任何指针将不胜感激。

I cannot recreate your error with pyodbc. 我无法使用pyodbc重新创建您的错误。 Could you try Teradata's own official package 'teradata' and see if you get similar behaviour. 您可以尝试使用Teradata自己的官方软件包“ teradata”,看看是否有类似的行为。

pip install teradata

And then 接着

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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM