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

SSIS基于Simba ODBC连接BigQuery本地正常,SQL Agent执行报ODBC-1错误求助

问题分析与解决方案

ODBC -1错误说明

ODBC错误码-1是通用未定义异常,表示ODBC驱动或连接管理器遇到了无法归类到具体错误码的异常。结合你的场景,大概率是SQL Agent执行环境与本地环境的差异导致,比如:

  • SQL Agent服务账户权限不足(无法访问BigQuery认证文件、驱动依赖库)
  • 作业未启用32位运行时(本地用32位ODBC,服务器SQL Agent默认64位,无法加载32位驱动配置)
  • 服务器上Simba驱动的依赖组件缺失(比如VC++运行库)
  • 认证信息的环境变量差异(本地配置的认证路径在服务器上不可用)

获取详细报错信息的方法

1. 启用SSIS包详细日志

在SSIS包中开启日志记录,重点勾选以下事件:

  • OnError:捕获包内所有错误事件
  • OnInformation:获取连接过程中的调试信息
  • ODBC Source/ODBC Destination的特定事件(如果使用了这些组件)
    日志可输出到SQL Server表或文本文件,方便后续排查。

2. 配置Simba ODBC驱动日志

打开服务器上的ODBC数据源管理器(32位),找到你的BigQuery连接:

  • 进入配置界面,找到“Logging”相关选项
  • 设置日志文件路径(确保SQL Agent服务账户有读写权限)
  • 开启“Enable Logging”并设置日志级别为“Verbose”
    执行SQL Agent作业后,查看日志文件可获取驱动层面的具体错误(比如认证失败、网络问题)

3. 检查SQL Agent作业运行环境

在SQL Agent作业的步骤配置中:

  • 切换到“执行选项”标签页
  • 勾选“使用32位运行时”(因为你本地用的是32位ODBC连接,服务器SQL Agent默认64位,无法识别32位数据源)

4. C#脚本任务捕获详细异常

在SSIS包中添加一个脚本任务,包裹ODBC连接的测试逻辑,代码示例如下:

using System;
using System.Data.Odbc;
using Microsoft.SqlServer.Dts.Runtime;

public void Main()
{
    bool fireAgain = true;
    string connectionString = Dts.Connections["connection_name"].ConnectionString;
    try
    {
        using (OdbcConnection conn = new OdbcConnection(connectionString))
        {
            conn.Open();
            Dts.Events.FireInformation(0, "ODBC Test", "Connection opened successfully", string.Empty, 0, ref fireAgain);
            conn.Close();
            Dts.TaskResult = (int)ScriptResults.Success;
        }
    }
    catch (Exception ex)
    {
        string errorMsg = $"详细错误信息:{ex.Message}\n堆栈跟踪:{ex.StackTrace}";
        if (ex.InnerException != null)
        {
            errorMsg += $"\n内部异常:{ex.InnerException.Message}\n内部堆栈:{ex.InnerException.StackTrace}";
        }
        // 将错误信息写入SSIS日志
        Dts.Events.FireError(0, "ODBC Connection Error", errorMsg, string.Empty, 0);
        Dts.TaskResult = (int)ScriptResults.Failure;
    }
}

enum ScriptResults
{
    Success = 0,
    Failure = 1
}

将此脚本任务放在包的起始位置,执行作业后可在SSIS日志中看到完整的异常信息。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:22:37