converting varchar to number while passing to IN clause I am really stuck here..

Given below is the miniature of what I am trying to achieve.

set serveroutput on;
declare 
rajesh varchar2(20);
x number(10);
begin
select wm_concat(stocks_id) into rajesh from users_stocks where users_id=28800;
select count(*) into x from users_stocks where stocks_id in(rajesh); 
dbms_output.put_line(x);
end;
/


Here is the error report

Error report:
ORA-01722: invalid number
ORA-06512: at line 6
01722. 00000 -  "invalid number"
*Cause:    
*Action:


The data type defined for stocks_id is number, and rajesh here is varchar2, that is why is this error is getting generated. I need some way by which rajesh comes as number to IN clause. 
As I stated this is just miniature I can not do something like this

select count(*) into x from users_stocks where stocks_id in(select some column from someTable); 


Please suggest. Thanks in advance.
If you want to go down this route (be aware there's a limit of 4000 values per IN, and all of the individual SQL statements are going to flood your shared pool, potentially causing performance problems), you can alter your code to use execute immediate and concatenate the IN list into the query.

You'd be better off combining the 2 queries in your code into a single query, and avoiding this completely.