oracle如何實現lastindexof的功能

2021-07-08 11:21:42 字數 908 閱讀 2585

第一種實現方法:reverse(substr(reverse(str),1,instr(reverse(str),'_') - 1))利用reverse函式,該函式的功能是反轉倒置。但是據測試在儲存過程中不能使用。於是到網上找了另外一種實現方法。

第二種:substr(str,instr(str,'_',-1,1)+1,length(str));這種實現沒那麼難懂了。利用了instr函式求得instr(str,'_',-1,1)求得最後乙個『_』的位置(開始位置)所以我們在用substr擷取的時候要加1。instr語法:

string1:要在此字串中查詢。

string2:要在string1中查詢的字串。

start_position:從string1開始查詢的位置。可選,預設為1,正數時,從左到右檢索,負數時,從右到左檢索。

我們這裡第三個引數為-1即從右邊查詢。正好就是最後乙個'_'的開始位置。

ps:insrtr可以實現類似like的功能和in的功能(效率問題沒有研究)

select name  from table  where 

instr

(name, 'xx') > 0;等同於select name from table where name like '%xx%';

select name from table where instr('xx,***,***x',name)>0; 等同於 select name from table where name in('xx','***','***x');

Oracle如何實現定時操作

常要oracle資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作,這時需要用到乙個函式dbms job.submit,來完成oracle定時器job時間的處理上。使用dbms job.submit這個函式,我們只需要考慮兩個事情 安排某一任...

Oracle如何實現跨庫查詢

實現結果 在乙個資料庫中某個使用者下編寫乙個儲存過程,在儲存過程中使用dblink連線另乙個資料庫,從此資料庫中的乙個使用者下取數,然後插入當前的資料庫中的乙個表中。二.實現方法步驟 1.建立儲存過程 2.在儲存過程中先建立database link 3.建立成功 4.從另乙個資料庫取出資料插入到當...

Oracle如何實現跨庫查詢

實現結果 在乙個資料庫中某個使用者下編寫乙個儲存過程,在儲存過程中使用dblink連線另乙個資料庫,從此資料庫中的乙個使用者下取數,然後插入當前的資料庫中的乙個表中。二.實現方法步驟 1.建立儲存過程 2.在儲存過程中先建立database link 3.建立成功 4.從另乙個資料庫取出資料插入到當...