【发布时间】:2017-11-01 17:37:16
【问题描述】:
所以我试图从这个表中解析出具有单个标识符(file_name)的数据,并且有不同的属性,例如 first_name、last_name、date_of_birth。这里的问题是其他非标识符列(例如 first_name、last_name 等)具有多个条目,由我猜测 chr(10) 分隔。其中一些字段也可以为空(如下所示的 DOB) 例如: 原始数据将有:filename.xml johnjacob schmidtmiller, 1-02-03 我需要它变成: 文件名.xml 约翰·施密特 1-02-03 文件名.xml jacob miller null
我拥有的如下:
select file_name
, regexp_substr(first_name, '([^chr(10)]*)(chr(10)|$)', 1, level, null, 1) as first_name
, regexp_substr(last_name, '([^chr(10)]*)(chr(10)|$)', 1, level, null, 1) as last_name
, regexp_substr(dob, '([^chr(10)]*)(chr(10)|$)', 1, level, null, 1) as dob
from TABLE
connect by level <= regexp_count(first_name, chr(10)) + 1
and prior file_name = file_name
and prior sys_guid() is not null
order by file_name
我目前只返回每个文件名的名字/姓氏/出生日期等。我做错了什么?
提前致谢!
【问题讨论】: