Select *
From (Select Trim(Substr(Txt,
Instr(Txt, ',', 1, Level) + 1,
Instr(Txt, ',', 1, Level + 1) -
Instr(Txt, ',', 1, Level) - 1)) As Token
From (Select ',' || :In_String || ',' As Txt From Dual)
Connect By Level <= Length(Txt) - Length(Replace(Txt, ',', '')) - 1)