Используется комбинация regex_substr()
для разделения строки и lpad()
для заполнения нулями:
select (regexp_substr(val, '[^-]+', 1, 1) || '-' ||
lpad(regexp_substr(val, '[^-]+', 1, 2), 6, '0') || '-' ||
lpad(regexp_substr(val, '[^-]+', 1, 3), 6, '0') || '-' ||
lpad(regexp_substr(val, '[^-]+', 1, 4), 6, '0')
)