У нас есть страница, на которой отображается список записей, и пользователю разрешено проверять нужные строки, а затем распечатывать отчет по этим выбранным записям. Я пытаюсь определить отчет Oracle с одним параметром, который будет списком идентификаторов, разделенных запятыми, для печати. Однако это не работает. SQL примерно такой:
Select * from CEP_TABLE where Table_ID in (:P_IDLIST)
Если я определяю параметр как числовой, я получаю ошибку «недопустимый ввод параметра» при попытке дать ему 654 655 — запятая не нравится.
Если я определяю параметр как символ, он принимает параметр, но затем база данных выдает ошибку «неверный номер». Похоже, что он заменяет переменную связывания всем параметром в кавычках — например.
Select * from CEP_TABLE where Table_ID in (‘654,655’)
Но я хочу без кавычек:
Select * from CEP_TABLE where Table_ID in (654,655)
Я могу заставить отчет работать, если я определяю несколько параметров, например. Table_ID в (:P1,:P2,:P3,:P4), но у них может быть сотня элементов, которые они хотят включить, поэтому определение 100 параметров кажется безумием — и на самом деле… я не хочу никаких ограничений.
Кто-нибудь уже решал эту проблему? - кажется, это было бы довольно обычно. Я мог бы заставить страницу записать выбранные идентификаторы во временную таблицу, а затем определить запрос для присоединения к этой таблице, но это также кажется чрезмерным.
sys.odcinumberlist
), а не в строку, в которой они объединены вместе? - person Alex Poole   schedule 02.10.2018