直接用update語(yǔ)句替換即可。
10年建站經(jīng)驗(yàn), 網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)客戶(hù)的見(jiàn)證與正確選擇。成都創(chuàng)新互聯(lián)公司提供完善的營(yíng)銷(xiāo)型網(wǎng)頁(yè)建站明細(xì)報(bào)價(jià)表。后期開(kāi)發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。
如test表中有如下數(shù)據(jù):
現(xiàn)要將sal中的數(shù)字都替換成10,用以下語(yǔ)句:
update?test?set?sal=10;
commit;
更新后結(jié)果:
注意:執(zhí)行update語(yǔ)句后,需要進(jìn)行commit,也就是提交,這樣才會(huì)使update生效。
看你的意思應(yīng)該是一個(gè)表的數(shù)據(jù)替換另一個(gè)表的相關(guān)數(shù)據(jù)吧,那就用merge語(yǔ)句就可以。
update也可以。
所謂替換應(yīng)該就是修改,如果相關(guān)內(nèi)容太多,那就分次分批進(jìn)行修改就好了。
在安裝oracle數(shù)據(jù)庫(kù)的時(shí)候,一般就把數(shù)據(jù)庫(kù)給創(chuàng)建了。當(dāng)使用Database Configuration Assistant工具創(chuàng)建另外一個(gè)數(shù)據(jù)庫(kù)的時(shí)候,一般數(shù)據(jù)庫(kù)默認(rèn)的數(shù)據(jù)路徑放在oracle安裝路徑下面(例如:C:\oracle\oradata)。為了提高數(shù)據(jù)庫(kù)的性能,一般oracle的主目錄和數(shù)據(jù)文件要分別放在不同的盤(pán)中。而且系統(tǒng)C盤(pán)很容易崩潰,且空間小,不小心數(shù)據(jù)將隨系統(tǒng)的崩潰而消失,那樣損失將是無(wú)法估量的。一般用Database Configuration Assistant工具創(chuàng)建數(shù)據(jù)庫(kù)時(shí)并不提示你修改路徑。而且這個(gè)修改的路徑也不容易找到。
具體方法如下:假設(shè)這里安裝的數(shù)據(jù)庫(kù)名是XLJC。
1:找到數(shù)據(jù)庫(kù)XLJC下面的文件pfile,在pfile中用文本編輯器打開(kāi)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")
將盤(pán)符c:變成你所要存放的盤(pán)符,比如d:,然后保存退出。
2:找到oracle數(shù)據(jù)默認(rèn)的存放路徑,例如這里是:
C:\oracle\oradata\XLJC
在d:盤(pán)下面建立同樣的目錄,例如d:\oracle\oradata。然后把整個(gè)XLJC文件夾復(fù)制到所建立的目錄下即可。(C:\oracle\oradata\XLJC目錄下存有有數(shù)據(jù)庫(kù)的控制文件,創(chuàng)建表空間的時(shí)候,表空間文件就和這些控制文件在同一目錄下)。
然后就可以打開(kāi)oracle數(shù)據(jù)庫(kù)平臺(tái)在你修改后的路徑下創(chuàng)建表空間了。
1)instr()函數(shù)的格式? (俗稱(chēng):字符查找函數(shù))
格式一:instr( string1, string2 ) ?? /?? instr(源字符串, 目標(biāo)字符串)
格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) ? /?? instr(源字符串, 目標(biāo)字符串, 起始位置, 匹配序號(hào))
解析:string2 的值要在string1中查找,是從start_position給出的數(shù)值(即:位置,-1表示從尾部開(kāi)始倒數(shù)第1個(gè))開(kāi)始在string1檢索,檢索第nth_appearance(幾)次出現(xiàn)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、創(chuàng)建測(cè)試表;
create table test_str_replace(id varchar2(20),value varchar2(20));
2、插入測(cè)試數(shù)據(jù);
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、查詢(xún)表中全量數(shù)據(jù);select t.*, rowid from test_str_replace t;
4、編寫(xiě)語(yǔ)句,將value字段中'abc'替換成'123',其他保持不變;
select t.*, regexp_replace(value,'abc','123') cnt from test_str_replace t ;
可以通過(guò)replace函數(shù)來(lái)獲取特定字符串后,進(jìn)行字段更新實(shí)現(xiàn):
sql:update
tablename
set
name=replace(name,'替換前字段','替換后字段')
where
name
like
'%替換前字段%'。
上面的sql語(yǔ)句的意思是替換tablename中name字段的“替換前字段“為”替換后字段“,
where后面的語(yǔ)句是篩選出字段中帶有”替換前字段“的name值。