我正在使用python 3.6.2,pyodbc 4.0.23访问Ubuntu 16.04上的Teradata 15.10.07.15。我安装的Teradata驱动程序是Ubuntu的tdodbc1620 16.20.00.36-1 amd64 SIMBA Teradata ODBC驱动程序包。
当我运行以下命令时:
>>>pyodbc.pooling = False
>>>conn_str="autocommit=True;ANSI=True;PWD=xxx;UID=xxx;DATABASE=xxx;LOGINTIMEOUT=300;DBCNAME=xxx;DRIVER=Teradata;SERVER=x.x.x)"
>>>conn=pyodbc.connect(conn_str)
>>>conn.setdecoding(pyodbc.SQL_CHAR, encoding='latin')
>>>conn.setdecoding(pyodbc.SQL_WCHAR, encoding='latin')
>>>conn.setdecoding(pyodbc.SQL_WMETADATA, encoding='latin')
>>>conn.setencoding(encoding='latin')
>>>cur = conn.cursor()
>>>sql5 = """SELECT IP3_addr, cntry_name, city_name FROM tns_access_views.DW_TNS_IP_ADDR_GEO_LOC_LKP where cntry_name in (xxx) """
>>>ip = pandas.io.sql.read_sql(sql5,conn)
>>>ip.columns
Index(['IP3_', 'CNTRY', 'CITY_'], dtype='object')
我期望IP3_addr,cntry_name,city_name。知道为什么它会缩短列名吗?
答案 0 :(得分:0)
好奇您是否已解决此问题。我曾经遇到这个问题,并通过降级为pyodbc=3.0.7
来解决。但是,我不能再这样做了。似乎在Anaconda频道的任何地方都找不到此版本的Pyodbc。