не такой элегантный, как уже опубликованный вариант regexp_replace
, но другой способ сделать это, используя substr
и instr
, в пошаговом подходе.Я попытался сделать комментарий к самому коду, дайте мне знать, если есть какие-либо вопросы.HTH KR Питер
with
your_input as
(select 'PARTNER ESSENTIAL 24 MONTHS INITIAL FOR NETBACKUP SELF SERVICE XPLAT' string_ from dual)
,first_31_chars as
(select substr(your_input.string_,1,31) substring_ from your_input)
,last_space_in_first_31_chars as
(select instr(first_31_chars.substring_,' ',-1,1) position_ from first_31_chars)
,first_part as
(select trim(substr(string_,1,position_)) fp_substring_ from your_input,last_space_in_first_31_chars)
,second_part as
(select trim(substr(string_,position_)) sp_substring_ from your_input,last_space_in_first_31_chars)
select fp_substring_,sp_substring_ from first_part,second_part;