oracle批量分割字段并插入到新表中

例如:oracle数据库有表(house)
ID Address

1 杭州#平山花园#4单元#12幢#203@杭州#平山花园#4单元#12幢#204
2 杭州#香山花园#3单元#22幢#304
3 null
。。。
现在有需求是,将地址信息显示形式改成5列 ,即城市,小区名,单元号,楼房号,房间号 分成5列进行显示。由@隔开的需要分行后再分列。如果为空就都为空。

ID 城市 小区名 单元号 楼房号 房间号
1 杭州 平山花园 4单元 12幢 203
1 杭州 平山花园 4单元 12幢 204
2 杭州 香山花园 3单元 22幢 304
3 null null null null null
。。。

纯用sql做很难吧,为什么不在编辑器中先做处理呢。
把全部数据拿出来,在编辑器中将@替换成,回车换行
然后将#号替换成',',在最后加上';
使用列编辑在最前面插入 insert into table_name (ID,城市,小区名......) values(

应该差不多了吧

可以考虑使用 REGEXP_SUBSTR

我用 REGEXP_SUBSTR 已经分割出来了,原来要求是要用存储过程写的。