Sql 更改是否永久保留以供替换?
有谁能告诉我Oracle的替换功能和翻译功能的区别吗 我在某个地方读到,replace使数据库中的更改永久化,而translate则不这样做,对吗Sql 更改是否永久保留以供替换?,sql,oracle,Sql,Oracle,有谁能告诉我Oracle的替换功能和翻译功能的区别吗 我在某个地方读到,replace使数据库中的更改永久化,而translate则不这样做,对吗 任何一个函数都不能显示将证明replace在数据库中永久更改的查询吗?这两个函数都不会进行永久更改--只有在使用更新时,并且在提交事务后,才会进行“永久”更改。。。直到在该列上运行下一个update语句;) 这两种功能的操作方式不同: SELECT translate('1tech23', '123', '456') AS translate,
任何一个函数都不能显示将证明replace在数据库中永久更改的查询吗?这两个函数都不会进行永久更改--只有在使用
更新时,并且在提交事务后,才会进行“永久”更改。。。直到在该列上运行下一个update语句;)
这两种功能的操作方式不同:
SELECT translate('1tech23', '123', '456') AS translate,
replace('1tech23', '123', '456') AS replace
FROM DUAL
…返回:
translate replace
-------------------
4tech56 1tech23
替换提供的模式;迭代字符串以一次处理替换字符(从左向右移动)替换和转换之间的差异:
- 替换用一个字符串替换另一个字符串。
- TRANSLATE用一组中的字符替换另一组中的字符
- 转换或替换都不会更新数据库
以下是一些例子:
create table nada (id number(8), description nvarchar2(30));
insert into nada values (1, "I like peanuts.");
insert into nada values (2, 'Peanuts are not a nut.');
insert into nada values (3, 'peanuts are a legume.');
commit;
select * from nada;
给出:
replace(description,'peanuts','tomatoes')
--------------------------------------
I like tomatoes.
Peanuts are not a nut.
tomatoes are a legume.
这张表仍然是一样的:
Id Description
-- ------------------------
1 I like peanuts.
2 Peanuts are not a nut.
3 peanuts are a legume.
现在它变了:
select * from nada;
Id描述
-- ------------------------
我喜欢西红柿。
花生不是坚果。
西红柿是一种豆类。
现在,如果你也想修复“花生”,你可以使用REGEXP\u REPLACE。小马:如果你看下面的URL,它说REPLACE改变了数据库&这就是为什么我感到困惑的原因……你能确认哪一个是真的吗<代码>http://www.geekinterview.com/question_details/25173#.ThE57GGQpvk
@Mike:“gomathi.e”的答案不正确;其余的答案和我的答案一样。如果将update语句与translate子句一起使用,会发生什么。它还会更新记录吗?你能给我举个例子吗?我假设当你使用translate with update命令时,会对数据库进行更新。如果我错了,请纠正我。
select translate(description, ' .', '_!') from nada;
translate(description, ' .', '_!')
----------------------------------
I_like_peanuts!
Peanuts_are_not_a_nut!
peanuts_are_a_legume!
select replace(description, 'peanuts', 'tomatoes') from nada;
select * from nada;
Id Description
-- ------------------------
1 I like peanuts.
2 Peanuts are not a nut.
3 peanuts are a legume.
update nada set description = replace(description, 'peanuts', 'tomatoes');
commit;
select * from nada;
Id Description
-- ------------------------
1 I like tomatoes.
2 Peanuts are not a nut.
3 tomatoes are a legume.