Использование regexp_substr()
:
select
regexp_substr(mycol, '\d+', 1, 1) colA,
regexp_substr(mycol, '\d+', 1, 2) colB
from mytable
\d+
захватывает непрерывный ряд цифр. Четвертый аргумент указывает, какой случай должен быть возвращен.
Демонстрация на DB Fiddle :
with mytable as (
select 'PKGGeneral.SetObjectAttribute(i_DimObject=4,i_ObjectID=163225122,i_Attribute=NAME,i_Value (VarChar2)=xDSL:1.4.51);' mycol from dual
union all
select 'PKGPort.CreateLogicalPort(io_portid=197604073,i_name=VLAN_segment:7239554:IPTV GPON_Port_A,i_nodeid=123431890,i_porttypeid=1900000150,i_bandwidthid=1,i_parentportid=186300246);' from dual
)
select
regexp_substr(mycol, '\d+', 1, 1) colA,
regexp_substr(mycol, '\d+', 1, 2) colB
from mytable
COLA | COLB
:-------- | :--------
4 | 163225122
197604073 | 7239554