Защо питате името на Том отново, когато вече сте го поздравили?
Както и да е.. Да. Можете да използвате стандартната операция за разделяне на низ върху низ, разделен от CHR(10)
- знак за нов ред в Oracle. След това използвайте CAST
и COLLECT
функции, за да го конвертирате в масив. Тук използвах вградената колекция на Oracle sys.OdciVarchar2List
. Във вашия PL/SQL блок можете да го СЪБИРАТЕ ГРУПО във всеки правилен тип колекция, който може да съдържа елементи от низ.
WITH t (s)AS ( SELECT 'Hello TomWhere are youWhat's your name' FROM DUAL )SELECT CAST ( COLLECT ( REGEXP_SUBSTR(s, '[^' || CHR(10)|| ' ]+', 1, LEVEL) ) AS sys.OdciVarchar2List ) като колекцияFROM t CONNECT BY LEVEL <=REGEXP_COUNT(s, '[^' || CHR(10)|| ']+')
<предварителен код>| СЪБИРАНЕ ||------------------------------------------|| Здравей Том, къде си, как се казваш |