首页 > 解决方案 > 在对 SQL Server 的 pyodbc 调用中报告 WHICH 字段导致错误

问题描述

我有一个 python 文件的集合,每个文件都使用以下形式的多个调用:

sql_str = "exec SP_UPDATE;"
try:
    cursor.execute(sql_str)
except pyodbc.OperationalError as error:
    print("Connection issue.  connection failure")
except pyodbc.ProgrammingError as error:
    # Note this error is specific to a table and a row
    log_error(cursor, __file__, '', 'SP_UPDATE', 0,
              "Failure running update production table for SP_UPDATE"
              "SP_UPDATE" +
              "",
              f'pyodbc error message: {error}')

SP 看起来也很相似:

CREATE PROCEDURE [].[SP_UPDATE]
    @id_something [nvarchar] (500) NULL,
    @d_dt_start [date] NULL,
    @d_dt_end [date] NULL
    ...
AS
BEGIN
   something
END

现在代码可以工作了——大部分时间。但我担心代码何时不起作用,这总是由于数据错误。此代码片段在循环中调用。我应该保存行号。这很有帮助。但我真的很想知道是哪一列导致了问题并报告了这一点,因为真实的数据集有 7 到 200 多列。有没有办法解决这个问题?

标签: sql-serverexceptiontry-catchpyodbc

解决方案


推荐阅读