Oracle中instr和substr存儲(chǔ)過程詳解
instr和substr存儲(chǔ)過程,分析內(nèi)部大對象的內(nèi)容
instr函數(shù)
instr函數(shù)用于從指定的位置開始,從大型對象中查找第N個(gè)與模式匹配的字符串。
用于查找內(nèi)部大對象中的字符串的instr函數(shù)語法如下:
dbms_lob.instr( lob_loc in blob, pattern in raw, offset in integer := 1; nth in integer := 1) return integer; dbms_lob.instr( lob_loc in clob character set any_cs, pattern in varchar2 character set lob_loc%charset, offset in integer:=1, nth in integer := 1) return integer;
lob_loc為內(nèi)部大對象的定位器
pattern是要匹配的模式
offset是要搜索匹配文件的開始位置
nth是要進(jìn)行的第N次匹配
substr函數(shù)
substr函數(shù)用于從大對象中抽取指定數(shù)碼的字節(jié)。當(dāng)我們只需要大對象的一部分時(shí),通常使用這個(gè)函數(shù)。
操作內(nèi)部大對象的substr函數(shù)語法如下:
dbms_lob.substr( lob_loc in blob, amount in integer := 32767, offset in integer := 1) return raw; dbms_lob.substr( lob_loc in clob character set any_cs, amount in integer := 32767, offset in integer := 1) return varchar2 character set lob_loc%charset;
其中各個(gè)參數(shù)的含義如下:
lob_loc是substr函數(shù)要操作的大型對象定位器
amount是要從大型對象中抽取的字節(jié)數(shù)
offset是指從大型對象的什么位置開始抽取數(shù)據(jù)。
如果從大型對象中抽取數(shù)據(jù)成功,則這個(gè)函數(shù)返回一個(gè) raw 值。如果有一下情況,則返回null:
1 任何輸入?yún)?shù)尾null
2 amount < 1
3 amount > 32767
4 offset < 1
5 offset > LOBMAXSIZE
示例如下:
declare source_lob clob; pattern varchar2(6) := 'Oracle'; start_location integer := 1; nth_occurrence integer := 1; position integer; buffer varchar2(100); begin select clob_locator into source_lob from mylobs where lob_index = 4; position := dbms_lob.instr(source_lob, pattern, start_location, nth_occurrence); dbms_output.put_line('The first occurrence starts at position:' || position); nth_occurrence := 2; select clob_locator into source_lob from mylobs where lob_index = 4; position := dbms_lob.instr(source_lob, pattern, start_location, nth_occurrence); dbms_output.put_line('The first occurrence starts at position:' || position); select clob_locator into source_lob from mylobs where lob_index = 5; buffer := dbms_lob.substr(source_lob, 9, start_location); dbms_output.put_line('The substring extracted is: ' || buffer); end; / The first occurrence starts at position:8 The first occurrence starts at position:24 The substring extracted is: Oracle 9i
PL/SQL 過程已成功完成。
以上所述是小編給大家介紹的Oracle中instr和substr存儲(chǔ)過程詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- oracle截取字符(substr)檢索字符位置(instr)示例介紹
- Oracle通過正則表達(dá)式分割字符串 REGEXP_SUBSTR的代碼詳解
- oracle中l(wèi)ength、lengthb、substr、substrb函數(shù)用法介紹
- Oracle的substr和instr函數(shù)簡單用法
- oracle中的substr()函數(shù)用法實(shí)例詳解
- Oracle中的INSTR,NVL和SUBSTR函數(shù)的用法詳解
- Oracle中instr函數(shù)與substr函數(shù)及自制分割函數(shù)詳解
- oracle數(shù)據(jù)庫截取字符串substr函數(shù)使用舉例
相關(guān)文章
Oracle插入日期數(shù)據(jù)常見的2個(gè)問題和解決方法
這篇文章主要介紹了Oracle插入日期數(shù)據(jù)常見的2個(gè)問題和解決方法,一個(gè)是提示無效的月份問題,一個(gè)是日期插入格式問題 ,需要的朋友可以參考下2014-07-07實(shí)例分析ORACLE數(shù)據(jù)庫性能優(yōu)化
這篇文章主要介紹了從實(shí)例著手分析ORACLE數(shù)據(jù)庫性能優(yōu)化問題以及解決辦法,需要的朋友參考下吧。2017-12-12oracle聯(lián)機(jī)數(shù)據(jù)庫備份詳解
oracle數(shù)據(jù)庫維護(hù)中,備份或恢復(fù)是重中之重的問題,本文就講一下oracle聯(lián)機(jī)數(shù)據(jù)庫備份的方法2013-11-11Oracle數(shù)據(jù)庫中刪除表空間的詳細(xì)步驟與示例代碼
在 Oracle 數(shù)據(jù)庫中,表空間是存儲(chǔ)數(shù)據(jù)的邏輯容器,有時(shí)候,我們可能需要?jiǎng)h除不再使用的表空間以釋放空間或進(jìn)行數(shù)據(jù)庫重組,本文將詳細(xì)介紹在 Oracle 數(shù)據(jù)庫中刪除表空間的步驟和示例代碼,需要的朋友可以參考下2024-01-01