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

Azure Synapse:拼接Lookup返回的文件名时如何去除\与"特殊字符

问题场景
  • 从Lookup活动获取了50个文件名
  • 需要将所有文件名拼接至一个变量中,用于一次性更新所有文件的状态
  • 当前使用的拼接表达式:
    Append Filename = @item().File_Name
    Get list of filenames = @concat(variables('v_conc_filename'), item().File_Name, ',')
    fila_filename = @replace(replace(variables('v_get_filenames'), '\"', ''), '\\', '')
    
  • 存在问题:即便执行了字符串替换,最终输出仍包含\和",示例输出如下:
    {
        "name": "v_final_filename",
        "value": 
        "[\"P_Full_Additional_Data_List_Audit.000.PARQUET\",
        \"P_Full_Adviser_Audit.000.PARQUET\",
        \"P_Full_Additional_Data_Delete.000.PARQUET\",
        \"P_Full_Adviser.000.PARQUET\"
    }
    
  • 期望结果:生成无\和"的拼接列表,示例如下,以便直接用于数据库更新操作:
    {
        "name": "v_final_filename",
        "value": 
        "[P_Full_Additional_Data_List_Audit.000.PARQUET,
        P_Full_Adviser_Audit.000.PARQUET,
        P_Full_Additional_Data_Delete.000.PARQUET,
        P_Full_Adviser.000.PARQUET
    }
    
解决方案

方法1:使用join函数直接生成(推荐)

无需循环拼接,直接利用Lookup返回的数组,通过join函数一步生成目标格式:

@concat('[', join(body('Lookup活动的名称').value, ', '), ']')

说明:

  • body('Lookup活动的名称').value指向Lookup活动返回的包含所有文件名的数组
  • join函数将数组内的文件名用, 连接成字符串
  • concat在首尾添加[和],直接得到无转义符和引号的列表

方法2:修正现有循环拼接逻辑

如果必须保留循环拼接的方式,调整替换规则并处理末尾多余逗号:

  1. 调整替换表达式,直接替换实际的引号和转义符:
    @replace(replace(variables('v_get_filenames'), '"', ''), '\', '')
    
  2. 移除拼接后末尾多余的逗号,再添加首尾括号:
    @concat('[', substring(variables('v_get_filenames'), 0, sub(length(variables('v_get_filenames')), 1)), ']')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:55:04