You’re hitting Oracle’s 1000-item limit in IN lists — not the VARRAY size. For 15k values, load them into a table (temp/global/temp table) or pass them as a collection via PL/SQL, then join against that table/collection instead of hardcoding them in array_id(...).