重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
直接用update语句替换即可。
10年建站经验, 网站建设、网站设计客户的见证与正确选择。成都创新互联公司提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。
如test表中有如下数据:
现要将sal中的数字都替换成10,用以下语句:
update test set sal=10;
commit;
更新后结果:
注意:执行update语句后,需要进行commit,也就是提交,这样才会使update生效。
看你的意思应该是一个表的数据替换另一个表的相关数据吧,那就用merge语句就可以。
update也可以。
所谓替换应该就是修改,如果相关内容太多,那就分次分批进行修改就好了。
在安装oracle数据库的时候,一般就把数据库给创建了。当使用Database Configuration Assistant工具创建另外一个数据库的时候,一般数据库默认的数据路径放在oracle安装路径下面(例如:C:\oracle\oradata)。为了提高数据库的性能,一般oracle的主目录和数据文件要分别放在不同的盘中。而且系统C盘很容易崩溃,且空间小,不小心数据将随系统的崩溃而消失,那样损失将是无法估量的。一般用Database Configuration Assistant工具创建数据库时并不提示你修改路径。而且这个修改的路径也不容易找到。
具体方法如下:假设这里安装的数据库名是XLJC。
1:找到数据库XLJC下面的文件pfile,在pfile中用文本编辑器打开orit.ora文件。这里的路径是C:\oracle\admin\XLJC\pfile
找到行control_files=("c:\oracle\oradata\XLJC\control01.ctl", "c:\oracle\oradata\XLJC\control02.ctl", "c:\oracle\oradata\XLJC\control03.ctl")
将盘符c:变成你所要存放的盘符,比如d:,然后保存退出。
2:找到oracle数据默认的存放路径,例如这里是:
C:\oracle\oradata\XLJC
在d:盘下面建立同样的目录,例如d:\oracle\oradata。然后把整个XLJC文件夹复制到所建立的目录下即可。(C:\oracle\oradata\XLJC目录下存有有数据库的控制文件,创建表空间的时候,表空间文件就和这些控制文件在同一目录下)。
然后就可以打开oracle数据库平台在你修改后的路径下创建表空间了。
1)instr()函数的格式 (俗称:字符查找函数)
格式一:instr( string1, string2 ) / instr(源字符串, 目标字符串)
格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) / instr(源字符串, 目标字符串, 起始位置, 匹配序号)
解析:string2 的值要在string1中查找,是从start_position给出的数值(即:位置,-1表示从尾部开始倒数第1个)开始在string1检索,检索第nth_appearance(几)次出现string2。
SELECT A2.id,A1.name
from A2 left join
A1 on A2.codeall=A1.code
where LENGTHB(codeall)-LENGTHB(replace(codeall,',','')) = 0
union all
SELECT A2.id,A11.name||','||A12.name
from A2 left join
A1 A11 on substr(A2.codeall,1,instr(A2.codeall,',')-1)=A11.code left join
A1 A12 on substr(A2.codeall,instr(A2.codeall,',')+1,instr(A2.codeall,',',-1,1)-1)=A12.code
where LENGTHB(codeall)-LENGTHB(replace(codeall,',','')) = 1
union all
SELECT A2.id,A11.name||','||A12.name ||','||A13.name
from A2 left join
A1 A11 on substr(A2.codeall,1,instr(A2.codeall,',')-1)=A11.code left join
A1 A12 on substr(A2.codeall,instr(A2.codeall,',')+1,instr(A2.codeall,',',1,2)-1)=A12.code
A1 A13 on substr(A2.codeall,instr(A2.codeall,',',1,2)+1,instr(A2.codeall,',',-1,1)-1)=A13.code
where LENGTHB(codeall)-LENGTHB(replace(codeall,',','')) = 2
union all
SELECT A2.id,A11.name||','||A12.name ||','||A13.name ||','||A14.name
from A2 left join
A1 A11 on substr(A2.codeall,1,instr(A2.codeall,',')-1)=A11.code left join
A1 A12 on substr(A2.codeall,instr(A2.codeall,',')+1,instr(A2.codeall,',',1,2)-1)=A12.code
A1 A13 on substr(A2.codeall,instr(A2.codeall,',',1,2)+1,instr(A2.codeall,',',1,3)-1)=A13.code
A1 A14 on substr(A2.codeall,instr(A2.codeall,',',1,3)+1,instr(A2.codeall,',',-1,1)-1)=A14.code
where LENGTHB(codeall)-LENGTHB(replace(codeall,',','')) = 3
1、创建测试表;
create table test_str_replace(id varchar2(20),value varchar2(20));
2、插入测试数据;
insert into test_str_replace values('1','abcbcade');
insert into test_str_replace values('2','aaabcbca');
insert into test_str_replace values('3','aabcaabcab');
commit;
3、查询表中全量数据;select t.*, rowid from test_str_replace t;
4、编写语句,将value字段中'abc'替换成'123',其他保持不变;
select t.*, regexp_replace(value,'abc','123') cnt from test_str_replace t ;
可以通过replace函数来获取特定字符串后,进行字段更新实现:
sql:update
tablename
set
name=replace(name,'替换前字段','替换后字段')
where
name
like
'%替换前字段%'。
上面的sql语句的意思是替换tablename中name字段的“替换前字段“为”替换后字段“,
where后面的语句是筛选出字段中带有”替换前字段“的name值。