Не могу так сделать ...
Для статического SQL вам понадобится несколько переменных:
EXEC SQL
DELETE FROM FILE
WHERE FILEPGNA IN (:p1, :p2, :p3, ...);
Конечно, вам нужно знать, сколько или хотя бы максимальное количество значений вам нужно передать.
В качестве альтернативы вы можете использовать динамический SQL для построения оператора во время выполнения ..
dcl-c QUOTE '''';
dcl-s myStmt varchar(1000);
myStmt = 'delete from file where filepgna in ('
+ QUOTE + 'PGM1' + QUOTE
+ QUOTE + 'PGM2' + QUOTE
+ QUOTE + 'PGM3' + QUOTE
+ ')';
exec sql
execute immediate :myStmt;
обратите внимание, что константа QUOTE просто делает жизнь немного проще.