See here:
http://download-west.oracle.com/docs/cd/A87860_01/doc/appdev.817/a76975/oci03typ.htm#424804
Varchar2 in OCI is limited to 4000 characters. This limitation has not been lifted with Oracle 9.2.
(Bind variables can be longer otherwise, think of blobs or clobs.)
There is a maximum for IN lists anyway: it is 1000 literals.
Temporary tables are not a good idea: we tried this on AIESEC.net, the poor temporary tablespace got flooded with activity: You trade in parsing with hundreds of little statements per select query.
So the suggestion is to get rid of in list passing around at all 🤔