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

SSIS中ADO.NET Source用QODBC查询QuickBooks数据的SQL命令错误

解决SSIS中QODBC驱动查询QuickBooks TimeModified字段的问题

问题分析

QODBC驱动对DBTIMESTAMP类型字段的筛选语法有特殊要求,普通字符串格式的时间无法被正确解析,从而触发Expected Lexical Element Not Found错误。

解决方案

1. 使用ODBC标准时间戳字面量格式

直接采用ODBC通用的时间戳语法{ts 'yyyy-MM-dd HH:mm:ss'}替换普通时间字符串,示例查询:

SELECT * FROM Item WHERE TimeModified >= {ts '2022-12-21 13:16:34'}

该格式是QODBC原生支持的时间戳写法,能被驱动直接解析。

2. 使用SSIS参数化查询(推荐)

如果需要通过变量动态传入筛选时间,参数化查询可以彻底规避格式匹配问题:

  • 在ADO.NET Source编辑器中,选择“SQL command”并输入带参数的查询语句:
    SELECT * FROM Item WHERE TimeModified >= ?
    
  • 点击右侧“参数”按钮,将SSIS中DateTime类型的变量映射到该参数,驱动会自动完成类型转换,无需手动拼接时间字符串。

3. 确认驱动运行环境

由于使用32位QODBC驱动,需确保SSIS项目以32位模式运行:

  • 右键SSIS项目 → 属性 → 配置属性 → 调试 → 将Run64BitRuntime设置为False。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:31:07