WITH t AS
(SELECT '1-2-3-4' a FROM dual)
SELECT Regexp_Substr(a, '[^-]+', 1, LEVEL) i
FROM t
CONNECT BY LEVEL <= Regexp_Count(a, '-') + 1