首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编程错误:(ODBC类型102尚未支持.列-索引=12 type=102','HY106')

编程错误:(ODBC类型102尚未支持.列-索引=12 type=102','HY106')
EN

Stack Overflow用户
提问于 2021-01-27 17:56:44
回答 1查看 2.2K关注 0票数 1

我继承了一系列Python和Teradata文件。每个文件依赖于另一个文件。我试图使这一点更容易运行,并且我使用pyodbc来运行Teradata查询。其中一个查询运行良好,但当运行另一个查询时,会得到以下错误:

File "...\pandas\io\sql.py", line 1753, in _fetchall_as_list result = cur.fetchall()

ProgrammingError: ('ODBC SQL type 102 is not yet supported. column-index=12 type=102', 'HY106')

查询几乎相同,唯一改变的是分组级别(第一个查询运行得更细)。

我不知道为什么其中一个工作,但另一个不工作,但我想知道它是否与正在被导入的文件有关?我还认为,这可能与我的Teradata版本不兼容有关,但这并不能解释为什么一个查询工作,而另一个查询不工作。我对Python相当陌生,我没有看到102类型的错误。任何反馈他都会非常感激的。

EN

回答 1

Stack Overflow用户

发布于 2021-03-16 16:20:30

事情是这样的,它告诉你错误,只是没有很好地告诉你。要解决这个问题,请将SELECT语句更改为一次包含一个列,当我收到一个新列上的错误时,我将在查询中将其转换为已知的良好数据类型。

示例:

代码语言:javascript
复制
tableResult = pd.read_sql(
    "SELECT TOP 10 * FROM warehouse.equipment;", 
    cnxn
) 

结果会产生错误消息。我不需要select *,反正这是个糟糕的练习。开始一次添加一个。通常是日期,因为日期很难。

代码语言:javascript
复制
tableResult = pd.read_sql(
    "SELECT TOP 10 equipment_id FROM warehouse.equipment;", 
    cnxn
) 

有时候这也是垃圾,因为时间是谁?然后我将触发这个查询,并知道如何转换:

代码语言:javascript
复制
select
    column_name, 
    data_type, 
    character_maximum_length, 
    collation_name
from information_schema.columns
where
    table_schema in ('warehouse')
    and table_name in ('equipment')
;

现在,我可以看到有一列正在返回datetimeoffset。您将用您的技术堆栈的表替换这个过程,但答案是一样的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65924710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档