oracle經驗小節2

浪花一朵朵發表於2013-07-05

1,instr 函式

在Oracle/PLSQL中,instr函式返回要擷取的字串在源字串中的位置。

 語法如下:

instr( string1, string2 [, start_position [, nth_appearance ] ] )

string1:源字串,要在此字串中查詢。

string2:要在string1中查詢的字串

start_position:代表string1的哪個位置開始查詢。此引數可選,如果省略預設為1.

字串索引從1開始。如果此引數為正,從左到右開始檢索,如果此引數為負,從右到左檢索,返回要查詢的字串在源字串中的開始索引。

nth_appearance代表要查詢第幾次出現的string2.此引數可選,如果省略,預設為1.如果為負數系統會報錯。

舉例說明:返回字元"j",在字串"liuhongjia"中開始的索引,也就是第一次出現的位置。

如果返回0表示不包含,否則表示包含。

2,談到oracle 系統函式,不得不說dual表,下面是引用相關的參考資料:dual是一個系統表,不能刪除或者修改其表結構。它的名稱叫做“偽表”或者“啞表”。檢視其表結構:SQL> desc dual 名稱  

是否為空

?

型別 ----------- -------- -----------

DUMMY                VARCHAR2(1)

其欄位只有一個“dummy”,中文叫做“啞巴”。長度只有1。這個表結構只供參考。

在Oracle中,使用dual的主要原因是為了計算表示式的值。表的操作只能是查詢,其它如增刪改或者修改表結構,都沒有實際應用價值,不用研究。也可以一次性計算多個表示式的值:還有一個最常見的用途就是查詢當前系統日期,·dual表主要用於計算表示式。 ·表結構只供引數,實際返回的列數與表示式的個數有關·dual表只有可能返回一行,不可能返回多行。因為dual表並不是從表中取資料。

如上例中查詢字串中字元出現出現的位置,又如查系統日期:

進行數學計算:

3,oracle下劃線轉義

用法如下圖所示:

 

 

相關文章