oracle怎么将表中字段的很长的字符串数据更改其中一两个字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle怎么将表中字段的很长的字符串数据更改其中一两个字符相关的知识,希望对你有一定的参考价值。

只有该一两个字符只出现一次还是出现多次?确定全部修改的话
比如将该字段中含有“我”字符中的“我’,修改为“你”
update 表名 t set t.所在的字段 = replace(t.所在的字段,'我','你') where t.所在的字段 like'%我%';
commit;追问

比如流水id号 00000000351a 839277d12894a
我想要把前面的3位改了
update table t set substr(t.id,0,3)='111'
但是出错啊
提示缺失等号

追答

update table t set t.id= replace(t.id,substr(t.id,0,3),'111');
commit;

参考技术A 具体问题具体分析,用replace(简单)和regexp_replace(正则表达式,复杂点)函数可以实现追问

replace需要知道明确的值才能更改吧
我现在要更改流水号
很多个不一样的值
每个值都很长
怎么破?

追答

上面那个应该如下:
update table t set id='111'||substr(t.id,3)

追问

你的方法也是对的
可惜最佳答案只能有一个
不然也给你了

参考技术B 根据相应的where条件,使用update

oracle 将表中所有字段拼接成一个字符串给另一个表的一个字段

oracle 将表中所有字段拼接成一个字符串给另一个表的一个字段,假如表a的所有字段,给表b的X字段
表是多行数据,不是单行

参考技术A 拼接字段 select 字段1||字段2||字段3... from a;

update b set X字段=(select 字段1||字段2||字段3... from a);本回答被提问者采纳
参考技术B 一楼只说对了一半,正确的应该是这样子的:
update b set X字段=(select 字段1||字段2||字段3... from a where a.主键列=b.主键列);

必须要关联更新的,否则1对多的关系怎么能更新呢?
参考技术C update 表1 set col1=
(select col1||col2||col3 from 表2 where 查询条件 )
where 查询条件

其中||为oracle 中的字符串连接符
参考技术D a b 两张表要关联吧,不然更新时会整张表更新为同一数据,因为update的时候没有条件,oracle下你用merge into吧 第5个回答  2009-10-10 我知道的方法是写个function,返回字符串=a的所有值拼起来,然后update b=fun() where...

以上是关于oracle怎么将表中字段的很长的字符串数据更改其中一两个字符的主要内容,如果未能解决你的问题,请参考以下文章

oracle 将表中所有字段拼接成一个字符串给另一个表的一个字段

oracle中的一张表 想将表中所有字段里的数据中含有“”的把引号去掉 该怎么写

Oracle中储存很大很长的字符串用啥类型

oracle 10g中怎样执行很长的sql语句呢(最长可能有10万+字符)

Oracle SQL:带有 REGEXP_SUBSTR 表达式的插入查询很长(拆分字符串)

如何在 Oracle 中读取很长的 BLOB 列?