Используйте regexp_substr и добавляйте строки без идентификатора:
with DTE as
(
select file_name,
to_char(file_content) as file_content -- preconvert the clob to a varchar
from MyTable
)
, CTE as
(
select file_name,
case
when substr(file_content,1,1) ='|' -- If the string starts with the delimiter
then ' '||file_content -- then add a space at the start
else file_content
end as file_content
from DTE
)
select file_name,
regexp_substr (file_content, '[^|]+',1, 1 ) as id,
regexp_substr (file_content, '[^|]+',1, 2 ) as thenumber,
regexp_substr (file_content, '[^|]+',1, 3 ) as thename,
regexp_substr (file_content, '[^|]+',1, 4 ) as theaddress,
regexp_substr (file_content, '[^|]+',1, 5) as phone
from CTE