Eine Bindungsvariable bindet a Wert, in diesem Fall die Zeichenfolge '45,4932,20,19'. Sie könnten dynamisches SQL und Verkettung verwenden, wie von Randy vorgeschlagen, aber Sie müssten sehr vorsichtig sein, dass der Benutzer diesen Wert nicht ändern kann, andernfalls haben Sie ein Problem mit der SQL-Injektion.
Ein sichererer Weg wäre, die IDs in einem PL/SQL-Prozess in eine Apex-Sammlung zu stellen:
declare
array apex_application_global.vc_arr2;
begin
array := apex_util.string_to_table (:P5_USER_ID_LIST, ',');
apex_collection.create_or_truncate_collection ('P5_ID_COLL');
apex_collection.add_members ('P5_ID_COLL', array);
end;
Ändern Sie dann Ihre Abfrage in:
SELECT * FROM users u WHERE u.user_id IN
(SELECT c001 FROM apex_collections
WHERE collection_name = 'P5_ID_COLL')