在 Azure Synapse Pipeline Lookup 或 Copy 活动的查询设置中,我正在测试使用变量作为表名,以便可以在另一个 ForEach 循环内使用此活动。但我不断收到此错误:
错误 [42000] [Microsoft][BigQuery] (70) 无效查询:查询参数不能用于代替 [4:1] 处的表名称
以下是设置的几个关键点:
sku STRUCT<id STRING OPTIONS(description=""), description STRING OPTIONS(description="")> OPTIONS(description=""),
,数据将类似于 {"v":{"f":[{"v":"123-test-321"},{"v":"Log Volume"}]}}
SELECT * FROM @variables('v_tbl_name')
,用几个列名代替*,如sku.id AS sku_id, sku.description AS sku_description,
等SELECT * FROM @concat(variables('v_ds_name'),'.',variables('v_tbl_name'))' tbl
另一个带有 dataset.tablename 的屏幕截图,但出现了相同的错误
我从这篇文章中查找了类似的问题,但我仍然无法弄清楚:ADF 使用变量创建查找活动查询
期待您的来信,提前谢谢您。
您需要在查询选项中使用字符串插值。如果要在查询字符串中写入ADF动态内容,则需要在
@{}
内写入动态内容表达式(变量或函数)。
这是一个示例演示:
像这样写下您的查询。
select * from @{variables('table_name')}
结果:
concat()
也需要位于 @{}
内部,如下所示。
select * from @{concat(variables('v_ds_name'),'.',variables('v_tbl_name'))}