INSTR(ltrim(pn.pname),'REFERENCE ID=')
mengembalikan 0 (menunjukkan bahwa substring yang Anda cari tidak ditemukan) dan jika Anda mencoba melakukan:
REGEXP_SUBSTR( value, regex, 0 )
Anda akan mendapatkan kesalahan:
ORA-01428: argument '0' is out of range
Sebagai gantinya, Anda dapat menggunakan:
REGEXP_SUBSTR(
pn.pname,
'REFERENCE ID="(\d+)"',
1, -- Start from the 1st character
1, -- Find the 1st occurrence
NULL, -- No flags
1 -- Return the contents of the 1st capturing group
)