You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python日志如何提取PYODBC异常的纯消息而非错误代码?

提取Teradata pyodbc异常的纯错误消息

不用复杂的字符串替换或截取,pyodbc的异常对象本身就提供了获取纯错误消息的可靠途径,针对Teradata ODBC驱动,可按以下方式处理:

  • 捕获pyodbc.Error异常时,异常实例的args属性是一个元组,Teradata驱动通常会将纯错误描述放在第二个元素中:

    import pyodbc
    import logging
    
    logging.basicConfig(level=logging.ERROR)
    
    try:
        # 你的数据库操作代码
        conn = pyodbc.connect(...)
        cursor = conn.cursor()
        cursor.execute("SELECT WorkflowStatu FROM ADW_STUDIO_FSCSO_TABLES.BI_TP_And_Event_Base_Details")
    except pyodbc.Error as e:
        # 提取纯错误消息
        if len(e.args) >= 2:
            error_msg = e.args[1]
        else:
            # 兼容少数异常格式,从第一个元素中剥离冗余前缀
            error_msg = e.args[0].split(']')[-1].strip()
        logging.error(error_msg)
    
  • 这种方法直接利用ODBC驱动返回的结构化错误信息,比硬编码字符串替换更适配Teradata的各类异常场景。

  • 注意:Teradata驱动的args元组格式是稳定的——第一个元素包含带错误代码、驱动名称的完整错误头,第二个元素就是业务相关的纯错误描述。

内容的提问来源于stack exchange,提问作者WannabeDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:55:07