重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
oracle中可以通過(guò)全文檢索替換來(lái)實(shí)現(xiàn)單個(gè)字符的替換。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括東遼網(wǎng)站建設(shè)、東遼網(wǎng)站制作、東遼網(wǎng)頁(yè)制作以及東遼網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,東遼網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到東遼省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
設(shè)置全文檢索
步驟步驟一:檢查和設(shè)置數(shù)據(jù)庫(kù)角色
首先檢查數(shù)據(jù)庫(kù)中是否有CTXSYS用戶和CTXAPP腳色。如果沒(méi)有這個(gè)用戶和角色,意味著你的數(shù)據(jù)庫(kù)創(chuàng)建時(shí)未安裝intermedia功能 (10G默認(rèn)安裝都有此用戶和角色)。你必須修改數(shù)據(jù)庫(kù)以安裝這項(xiàng)功能。默認(rèn)安裝情況下,ctxsys用戶是被鎖定的,因此要先啟用ctxsys的用戶。
步驟二:賦權(quán)
在ctxsys用戶下,授予測(cè)試用戶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;
步驟三:設(shè)置詞法分析器(lexer)
--查詢測(cè)試
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動(dòng)城堡 or 俄羅斯',20)0;
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動(dòng)城堡 or 歐洲',20)0;
--基本查詢
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動(dòng)城堡',20)0;
--查詢包含多個(gè)詞語(yǔ)and測(cè)試通過(guò)
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動(dòng)城堡 and 歐洲',20)0;
測(cè)試通過(guò)。
直接用update語(yǔ)句替換即可。
如test表中有如下數(shù)據(jù):
現(xiàn)要將sal中的數(shù)字都替換成10,用以下語(yǔ)句:
update?test?set?sal=10;
commit;
更新后結(jié)果:
注意:執(zhí)行update語(yǔ)句后,需要進(jìn)行commit,也就是提交,這樣才會(huì)使update生效。
可以通過(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值。
1)instr()函數(shù)的格式? (俗稱:字符查找函數(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