SELECT
'强 ! :我;很;强;我;知;道: ' 要分隔的字符串,
substr('强 ! :我;很;强;我;知;道: ',1,instr('强 ! :我;很;强;我;知;道: ',':',+1)-1) 第一个冒号之前,
substr('强 ! :我;很;强;我;知;道: ',instr('强 ! :我;很;强;我;知;道: ',':',1)+1,instr('强 ! :我;很;强;我;知;道: ',':',instr('强 ! :我;很;强;我;知;道: ',':',1)+1)-instr('强 ! :我;很;强;我;知;道: ',':',1)-1) 冒号之内,
REGEXP_SUBSTR ((substr('强 ! :我;很;强;我;知;道: ',instr('强 ! :我;很;强;我;知;道: ',':',1)+1,instr('强 ! :我;很;强;我;知;道: ',':',instr('强 ! :我;很;强;我;知;道: ',':',1)+1)-instr('强 ! :我;很;强;我;知;道: ',':',1)-1)),'[^;]+', 1,rownum) 冒号明细
FROM dual
connect by rownum<=LENGTH ((substr('强 ! :我;很;强;我;知;道: ',instr('强 ! :我;很;强;我;知;道: ',':',1)+1,instr('强 ! :我;很;强;我;知;道: ',':',instr('强 ! :我;很;强;我;知;道: ',':',1)+1)-instr('强 ! :我;很;强;我;知;道: ',':',1)-1)))
- LENGTH (regexp_replace((substr('强 ! :我;很;强;我;知;道: ',instr('强 ! :我;很;强;我;知;道: ',':',1)+1,instr('强 ! :我;很;强;我;知;道: ',':',instr('强 ! :我;很;强;我;知;道: ',':',1)+1)-instr('强 ! :我;很;强;我;知;道: ',':',1)-1)), ';', ''))+1
ORDER BY '强 ! :我;很;强;我;知;道: '