¿Por qué vuelves a preguntar el nombre de Tom cuando ya lo has saludado?
De todos modos.. Sí. Podría usar la operación de división de cadena estándar en una cadena delimitada por CHR(10)
- carácter de nueva línea en Oracle. Luego haz uso de CAST
y COLLECT
funciones para convertirlo en una matriz. Aquí he usado la colección integrada de Oracle sys.OdciVarchar2List
. En su bloque PL/SQL, puede COLECCIONARLO A GRANEL en cualquier tipo de colección adecuado que pueda contener elementos de cadena.
WITH t (s)
AS (
SELECT 'Hello Tom
Where are you
What''s your name'
FROM DUAL
)
SELECT CAST ( COLLECT ( REGEXP_SUBSTR(s, '[^' || CHR(10)|| ']+', 1, LEVEL) )
AS sys.OdciVarchar2List ) as collection
FROM t CONNECT BY LEVEL <= REGEXP_COUNT(s, '[^' || CHR(10)|| ']+')
| COLLECTION |
|------------------------------------------|
| Hello Tom,Where are you,What's your name |