oracle中可以通過全文檢索替換來實現(xiàn)單個字符的替換。
創(chuàng)新互聯(lián)服務項目包括東遼網(wǎng)站建設、東遼網(wǎng)站制作、東遼網(wǎng)頁制作以及東遼網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,東遼網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到東遼省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
設置全文檢索
步驟步驟一:檢查和設置數(shù)據(jù)庫角色
首先檢查數(shù)據(jù)庫中是否有CTXSYS用戶和CTXAPP腳色。如果沒有這個用戶和角色,意味著你的數(shù)據(jù)庫創(chuàng)建時未安裝intermedia功能 (10G默認安裝都有此用戶和角色)。你必須修改數(shù)據(jù)庫以安裝這項功能。默認安裝情況下,ctxsys用戶是被鎖定的,因此要先啟用ctxsys的用戶。
步驟二:賦權(quán)
在ctxsys用戶下,授予測試用戶oratext以下權(quán)限:
GRANT resource, CONNECT, ctxapp TO oratext;
GRANT EXECUTE ON ctxsys.ctx_cls TO oratext;
GRANT EXECUTE ON ctxsys.ctx_ddl TO oratext;
GRANT EXECUTE ON ctxsys.ctx_doc TO oratext;
GRANT EXECUTE ON ctxsys.ctx_output TO oratext;
GRANT EXECUTE ON ctxsys.ctx_query TO oratext;
GRANT EXECUTE ON ctxsys.ctx_report TO oratext;
GRANT EXECUTE ON ctxsys.ctx_thes TO oratext;
GRANT EXECUTE ON ctxsys.ctx_ulexer TO oratext;
步驟三:設置詞法分析器(lexer)
--查詢測試
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動城堡 or 俄羅斯',20)0;
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動城堡 or 歐洲',20)0;
--基本查詢
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動城堡',20)0;
--查詢包含多個詞語and測試通過
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動城堡 and 歐洲',20)0;
測試通過。
直接用update語句替換即可。
如test表中有如下數(shù)據(jù):
現(xiàn)要將sal中的數(shù)字都替換成10,用以下語句:
update?test?set?sal=10;
commit;
更新后結(jié)果:
注意:執(zhí)行update語句后,需要進行commit,也就是提交,這樣才會使update生效。
可以通過replace函數(shù)來獲取特定字符串后,進行字段更新實現(xiàn):
sql:update
tablename
set
name=replace(name,'替換前字段','替換后字段')
where
name
like
'%替換前字段%'。
上面的sql語句的意思是替換tablename中name字段的“替換前字段“為”替換后字段“,
where后面的語句是篩選出字段中帶有”替換前字段“的name值。
1)instr()函數(shù)的格式? (俗稱:字符查找函數(shù))
格式一:instr( string1, string2 ) ?? /?? instr(源字符串, 目標字符串)
格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) ? /?? instr(源字符串, 目標字符串, 起始位置, 匹配序號)
解析:string2 的值要在string1中查找,是從start_position給出的數(shù)值(即:位置,-1表示從尾部開始倒數(shù)第1個)開始在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