Во-первых, в SSRS с подключением Oracle OLEDB необходимо использовать двоеточие, а не символ @, например. : параметр не @параметр, но тогда вы не сможете сделать это как многозначный параметр, он принимает только отдельные значения. Хуже того, если вы используете соединение ODBC, вы должны использовать вопросительный знак сам по себе, например, ? не @parameter, и тогда порядок параметров становится важным, и они также не могут быть многозначными. Единственный способ, которым у вас остались, - использовать выражение для построения запроса (функция join () для параметра) или вызвать сохраненный процесс.
Опция сохраненной процедуры лучше всего подходит, потому что SSRS может очень аккуратно обрабатывать параметры для хранимых процедур как для SQL Server, так и для Oracle, но если это не вариант, вы можете использовать это выражение:
="select column1, column2, a from table A where A.a in (" + Join(Parameters!parameter.Value,", ") + ")"
Или, если значения параметров являются строками, для которых требуется апостроф:
="select column1, column2, a from table A where A.a in ('" + Join(Parameters!parameter.Value,"', '") + "')"
Когда вы щелкаете правой кнопкой мыши по набору данных, вы можете выбрать «свойства набора данных» и затем использовать кнопку fx, чтобы редактировать запрос как выражение, а не использовать конструктор запросов, который не позволит вам редактировать его как выражение. ,
Этот метод выражения ограничен максимальным пределом около 1000 значений, но если у вас их так много, это неправильный способ сделать это в любом случае, вы бы предпочли присоединиться к таблице.