REGEXP_SUBSTR() 不能直接在 ODI 中使用(除了可以在 DB 视图中使用),而 REGEXP_REPLACE() 可以用于版本 12。但是通过使用 @ 会更容易操作987654324@函数,以便在可以使用时进行拆分。但是另一个函数更难用于这种拆分目的。
或者,您可以使用标准的前函数(例如 SUBSTR()、INSTR() 和 LENGTH())以及分层查询,以便根据拆分生成行,例如:
SELECT timestamp,
CASE WHEN level = 1
THEN SUBSTR( rules, 1, INSTR(rules,',') - 1 )
WHEN level = LENGTH(rules) - LENGTH(REPLACE(rules,',')) + 1
THEN SUBSTR( rules, INSTR(rules,',',1,level-1)+1,
LENGTH(rules)-INSTR(rules,',',1,level-1)+1)
ELSE SUBSTR( rules, INSTR(rules,',',1,level-1)+1,
INSTR(rules,',',1,level)-INSTR(rules,',',1,level-1)-1)
END AS rules
FROM t
CONNECT BY level <= LENGTH(rules) - LENGTH(REPLACE(rules,',')) + 1
AND PRIOR SYS_GUID() IS NOT NULL
AND PRIOR timestamp = timestamp
Demo