I have following issue with string interpolation in a data flow expression builder.
I am reading values from a File via LookUp Activity in Azure Data Pipeline, I set a variable PRCTR to the value ('P00610','P00612') from a file and then assign this variable to a Data Flow Parameter.
When I start the data pipeline, my data flow gets this value from the variable: "prctr": "'('P00610','P00612')'" and the SQL source Query I write looks like:
"SELECT VALUE t FROM c.Metadata WHERE t IN {$prctr}"
I also tried adding single quotes to the variable:
"SELECT VALUE t FROM c.Metadata WHERE t IN '{$prctr}'"
In both of the cases my dataflow is failing with error:
Job failed due to reason: com.microsoft.dataflow.Issues: DF-DSL-002 - Parameter stream has parsing errors. Parameter(s) with errors: prctr. Not honoring the datatype of parameter(s) could be one of the causes.
I do not mark this parameter as Expression:
How should I handle such string to process it correctly? By the way when I try to pass only 1 value for PRCTR and change the query to this:
"SELECT VALUE t FROM c.Metadata WHERE t = '{$prctr}'"
it works!
So smth with a string value where multiple items exist ('P00610','P00612') is causing an error.
Please share your ideas, thank you.

{$prctr}is treated as a parameter, you can't pass multiple values, no matter what. Everything will be treated as a single string value. Adding quotes won't help. There's no difference betweenIN 'banana'andIN '(banana). In both cases you have a single string value. IF interpolation is allowed, the string value you need to pass is('P00610','P00612')- no outer quotes{$prctr}is treated as a query parameter the actual query sent to the database will beWHERE t = ?orWhere t=@param1with the actual value passed outside the query itself. Even if you useWHERE t IN (@param1)it's still a single value