ok here is my procedure based on the site you posted. Type ONEDNUMBERARRAY is type ONDNUMBERARRAY as table of number.
PROCEDURE GetTabAccess(ATabID IN NUMBER,
DATA_CURSOR OUT Types.CursorType)
IS
BEGIN
OPEN DATA_CURSOR FOR
select id,
cast ( multiset( select user_id
from caw_tabsaccess
where caw_tabsaccess.tab_id = caw_tabs.id and caw_tabsaccess.user_id IS NOT null
group by user_id ) as ONEDNUMBERARRAY ) USER_ID
from caw_tabs;
END GetTabAccess;
which compiles and seems to work but the script output is