It looks like I can use the `getvertices()` function and the `table()` function : select a.line_id, --sdo_util.getvertices(a.shape), b.id as vertex_id, b.x, b.y from a_sdo_geometry_tbl a cross join table(sdo_util.getvertices(a.shape)) b order by a.line_id, b.id; LINE_ID VERTEX_ID X Y ---------- ---------- ---------- ---------- 1 1 671539.685 4863324.18 1 2 671595.050 4863343.17 1 3 671614.014 4863350.34 1 4 671622.204 4863353.53 2 1 71534.5567 4863119.99 2 2 671640.738 4863157.13 2 3 671684.862 4863172.02 3 1 671622.204 4863353.53 3 2 671633.327 4863357.85 3 3 671904.061 4863451.29 4 1 671684.862 4863172.02 4 2 671892.150 4863244.14 4 3 671951.216 4863264.82 4 4 671957.447 4863266.85 4 5 671966.824 4863269.15 15 rows selected.