使用Azure Data Factory无法复制数据至Snowflake数据库求助
ADF复制数据到Snowflake报错:无法创建Stage(无当前数据库)的解决思路
报错信息
ErrorCode=UserErrorOdbcOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=ERROR[22000] Cannot perform CREATE STAGE. This session does not have a current database. Call 'USE DATABASE', or use a qualified name.,Source=Microsoft.DataTransfer.Runtime.GenericOdbcConnectors,''Type=System.Data.Odbc.OdbcException,Message=ERROR[22000] Cannot perform CREATE STAGE. This session does not have a current database. Call 'USE DATABASE', or use a qualified name.,Source=SnowflakeODBC_sb64.dll,'
解决思路
- 检查Snowflake链接服务配置:确保ADF的Snowflake链接服务中明确指定了默认数据库和默认仓库,同时确认所用Snowflake角色拥有
CREATE STAGE权限,以及对目标数据库、Schema的读写权限。若链接服务未指定默认库,ADF建立的会话会缺失当前数据库,执行CREATE STAGE时必然报错。 - 确认Sink数据集配置:检查Snowflake数据集属性,确保数据库和Schema字段已正确填写,不能留空。如果使用临时Stage,也可以给Stage名称加上数据库和Schema的完全限定前缀,比如
YOUR_DB.YOUR_SCHEMA.TEMP_STAGE。 - 验证Copy Activity的Sink设置:确认Sink中的目标表已指定正确的数据库和Schema(或直接使用完全限定表名
DB.SCHEMA.TABLE),避免因目标位置不明确导致会话无法识别当前数据库。 - 测试链接服务连通性:在ADF中测试Snowflake链接服务的连通性,确保能成功连接到指定的数据库和仓库,排除配置错误导致的会话初始化问题。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

