我在Azure数据工厂管道中有一个查找活动,它从存储过程返回连接字符串的输出;
SELECT STRING_AGG(CONCAT('"', id, '"'), ',') AS id
FROM #processedRecords;
这将返回如下所示的输出;
"0xE86B6656CA08E3B7AC704ECFC0F9A1B5086DF3461EE446999C523710AFB31888","0x6109C57BEBAE6BE14E4955E51B076E72A6FE5E0251D7043E5721020676B9CA6D","0x1E17C7C700468FD08D3F020CAF100C9A60D843A4D3FCCA726A07AFAD77AC825A"
当我在ADF中运行查找活动时,它会输出以下内容:
{
"firstRow": {
"id": "\"0xE86B6656CA08E3B7AC704ECFC0F9A1B5086DF3461EE446999C523710AFB31888\",\"0x6109C57BEBAE6BE14E4955E51B076E72A6FE5E0251D7043E5721020676B9CA6D\",\"0x1E17C7C700468FD08D3F020CAF100C9A60D843A4D3FCCA726A07AFAD77AC825A\""
我如何才能阻止它转义双引号,使它不包含反斜杠()。
我已经尝试过在一个集合变量中进行替换,像这样;
@replace(activity('Lookup JSON').output.firstRow.id,'\' , '')
但它还是逃过了双引号?
1条答案
按热度按时间h7appiyu1#
在ADF中,默认情况下,它将为字符串添加
backslash(\)
作为double quote(")
的转义字符。但当我们将此字符串存储在ADF的任何文件中时,它不会成为字符串的一部分,并且在ADF中进行字符串操作时也不会出现问题。出于演示的目的,我尝试了相同的场景,这是我的查找输出:
我已经使用下面的表达式将上面带有反斜杠的字符串的**长度存储在一个变量中。
不带反斜杠(\)的同一字符串长度:
你可以看到两者的长度相同,这意味着在ADF中两个字符串是相同的。
它(反斜杠(\))不会被替换,因为它不存在于字符串中,但ADF只是默认情况下将它添加为转义字符。您可以根据需要像使用普通字符串一样使用查找输出字符串。