oracle 数据库 怎么把一个表中的一个字段按规律拆分,并显示出来

oracle 数据库有一个表
ID 名字
1 张三_北京
2 李四_上海
有没有什么函数,可以在数据库把名字那个以-分割 展示出来是
1 张三 北京
就是要求用SQL的,前几天下载资料分用完了。。实在是没有了。。那个大神帮忙出手一下。。谢了

1、首先需要sys或system权限操作

2、查询需要更改表的ID

select object_id  from all_objects where owner = 'ITHOME'
and object_name = 'TEST';1234

注:ITHOME为用户,TEST是要更改的表,表名要大写

3、通过ID查出该表所有字段的顺序

select obj#, col#, name
from sys.col$
where obj# = '103756' order by col#123

4、修改顺序

update sys.col$ set col#=2 where obj#=103756 and name='AGE';update sys.col$ set col#=3 where obj#=103756 and name='NAME';12

或直接在第三步的语句后面加 for update 进行修改

最后commit提交 并且重启Oracle服务

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-03
oracle 数据库拆分字段的实现方法:
用正则表达式拆分某一个字段,比如有a,b,c,d,e

sql写法如下:
select regexp_substr('a,b,c,d,e,','[^,]+',1,rownum)
from dual connect by rownum<=length(regexp_replace('a,b,c,', '[^,]', null))
结果:
执行结果如下:
1 a
2 b
3 c
4 d
5 e
第2个回答  2012-05-25
select id,replace(name ,'_',' ') from 表名
第3个回答  2012-05-28
select id,substr(name,1,instr(name,'_')-1) as 名字,substr(name,instr(name,'_')+1) as 地名 from tableName
第4个回答  推荐于2017-11-25
select id,substr(name,1,instr(name,'_')-1),substr(name,instr(name,'_')+1) from tableName本回答被提问者采纳
相似回答