本帖最后由 KearneyKang 于 2017-7-31 13:37 编辑
16 PostgreSQl多值传参问题的解决
ODBC数据源不支持多值参数,可以使用动态拼接SQL语句的方法绕过此问题。
核心是:
(1)脚本
Function ArrayToString(list As Object()) As String Dim re ="" For Each item AsString In list If item IsNothing Then ContinueFor End If
If re<> "" Then re +="," End If
re += item Next Return re End Function (2)数据集SQL使用表达式
="select * from city where CountryCode in ("& Code.ArrayToString( Parameters!CountryCode.Value ) & ")"
="select *from Test2 WHERE 业务编号 In ('" +Join(Split(Code.ArrayToString( Parameters!P1.Value ), ","), "','") + "')"
操作办法:首先写一个脚本把输入的多值(数组的形式),合并成一个string类型的,然后在用Split函数进行一个分割。
|