Это работает на ура везде
Select * from TABLE where operation in (1,2,3,4)
правильно. вот только в
select ... where field in :param
имеется в виду значение параметра, а значение параметра это всегда ОДНО значение, а не набор. Даже если вы передаете туда строку
'1,2,3,4', сервер воспринимает это как одно значение, и будет выполнять как field = :param. То есть, сама по себе конструкция
where field in :param
бредовая, хоть и допускается сервером.
насчет execute statement - я добрый. пользуйтесь этим оператором как можно чаще. постарайтесь, чтобы он встречался примерно как половина всех выполняемых в коде операторов sql. даже если рука потянется написать select ... - оформите его в Execute statement 'select...'.