Oracle存儲過程小記---DUAL


  在oracle中,我們有時候會需要判斷一個字符串里邊是否包含有某一個串;首先,oracle為我們提供了instr這個函數:

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

  參數分析:

  string1,源字符串,要在此字符串中查找。  string2:  要在string1中查找的字符串。  start_position: 代表string1 的哪個位置開始查找。此參數可選,如果省略默認為1. 字符串索引從1開始。如果此參數為正,從左到右開始檢索,如果此參數為負,從右到左檢索,返回要查找的字符串在源字符串中的開始索引。 nth_appearance: 代表要查找第幾次出現的string2. 此參數可選,如果省略,默認為 1.如果為負數系統會報錯。

  注意:如果String2在String1中沒有找到,instr函數返回0.

 

  有了這個函數, 可以我們怎么用呢, 這個時候, dual就起作用了, 我們可以這樣:

  select instr("xxxxxx", "xxx") from dual.

  那么 dual到底是個什么東西呢?

 

  dual是一個虛擬表,用來構成select的語法規則,oracle保證dual里面永遠只有一條記錄。我們可以用它來做很多事情,例如上邊,當我們需要使用一個函數時,就可以使用dual了。

  

dual是一個虛擬表,用來構成select的語法規則,oracle保證dual里面永遠只有一條記錄。我們可以用它來做很多事情,如下:

  1、查看當前用戶,可以在 SQL Plus中執行下面語句 select user from dual;

  2、用來調用系統函數

  select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--獲得當前系統時間

  select SYS_CONTEXT('USERENV','TERMINAL') from dual;--獲得主機名

  select SYS_CONTEXT('USERENV','language') from dual;--獲得當前 locale

  select dbms_random.random from dual;--獲得一個隨機數

  3、得到序列的下一個值或當前值,用下面語句

  select your_sequence.nextval from dual;--獲得序列your_sequence的下一個值

  select your_sequence.currval from dual;--獲得序列your_sequence的當前值

  4、可以用做計算器 select 7*9 from dual;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM