Насколько я могу судить, Oracle не примет такой список в качестве допустимого параметра.Либо сохраните этот список значений в отдельной таблице и используйте его в качестве источника для вашего запроса, например
and t.date in (select max(t1.date) from table_name t1
where t1.id in (select st.id from some_table st)
)
, либо, если возможно, разбейте строку значений, разделенных запятыми, на строки, например,
and t.date in (select max(t1.date) from table_name t1
where t1.id in (select regexp_substr(%s, '[^,]+', 1, level)
from dual
connect by level <= regexp_count(%s, ',') + 1
)
)
Кроме того, я бы предложил перед именами столбцов использовать псевдонимы таблиц, чтобы избежать возможной путаницы.