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

使用Azure Data Factory向Snowflake复制数据时参数化连接报错

ADF向Snowflake复制数据参数化配置报错问题

在使用Azure Data Factory(ADF)向Snowflake数据库复制数据时,出现如下异常情况:

  • 采用参数化配置链接服务和接收器时,触发SQL编译错误
  • 硬编码表名时,数据复制可正常完成

错误信息

ErrorCode=UserErrorOdbcOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=ERROR [42S02] SQL compilation error:
Object 'FNDMTL_DEV.DBO."Obligations"' does not exist or not authorized.,Source=Microsoft.DataTransfer.Runtime.GenericOdbcConnectors,''Type=System.Data.Odbc.OdbcException,Message=ERROR [42S02] SQL compilation error:
Object 'FNDMTL_DEV.DBO."Obligations"' does not exist or not authorized.,Source=SnowflakeODBC_sb64.dll,'

解决思路

  • 检查表名参数的引号处理:错误信息中表名被包裹在双引号内,Snowflake对带双引号的标识符会严格区分大小写。确认参数中的表名是否自带引号,或ADF在参数替换时自动添加了引号。尝试在参数中只传入Obligations(不带引号),或调整接收器配置去掉自动添加引号的逻辑。
  • 验证对象权限与存在性:在Snowflake中手动执行SELECT * FROM FNDMTL_DEV.DBO.Obligations(不带双引号),确认该表存在且当前用户具备访问权限,排除权限不足或对象名称拼写错误的问题。
  • 调整参数化表达式格式:在ADF接收器的表名配置中,直接使用@dataset().TableName这类表达式传递参数,避免手动添加多余引号。若表名包含特殊字符必须使用引号,确保格式符合Snowflake的语法要求。
  • 排查生成的SQL语句:启用ADF调试日志,查看参数化配置下实际执行的SQL语句,对比硬编码时的SQL差异,定位参数替换过程中产生的语法问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 18:05:21