@Gary_W ने इसके बारे में लिखा है स्ट्रिंग को विभाजित करने के लिए उस रेगेक्स पैटर्न का उपयोग करने में समस्या, ठीक है कि यह खाली टैग का इलाज कैसे करता है। (और एक मिशन पर है...ए> )
उस पोस्ट में वैकल्पिक दृष्टिकोण यहां भी काम करता है, पाइप सीमांकक बच निकला:
with t (str) as (
select '1|CAT|DOG' from dual
union all select '3|HARRY|GOAT|STACK' from dual
union all select '6||LION|TIGER' from dual
)
select str, regexp_substr(str, '(.*?)(\||$)', 1, 2, null, 1) from t;
STR REGEXP_SUBSTR(STR,
------------------ ------------------
1|CAT|DOG CAT
3|HARRY|GOAT|STACK HARRY
6||LION|TIGER
इसी तरह तीसरे तत्व के लिए:
select str, regexp_substr(str, '(.*?)(\||$)', 1, 3, null, 1) from t;
STR REGEXP_SUBSTR(STR,
------------------ ------------------
1|CAT|DOG DOG
3|HARRY|GOAT|STACK GOAT
6||LION|TIGER LION
और चौथा:
select str, regexp_substr(str, '(.*?)(\||$)', 1, 4, null, 1) from t;
STR REGEXP_SUBSTR(STR,
------------------ ------------------
1|CAT|DOG
3|HARRY|GOAT|STACK STACK
6||LION|TIGER TIGER