Oracle儲存過程小記

2021-12-30 02:44:55 字數 1318 閱讀 2855

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("******", "***") 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;

儲存過程小記

簡單示例一 create or replace procedure testp isal in number 輸入引數不能有長度限制 isxname varchar2 10 變數要有長度限制 cursor cur 1 is select ename from emp where sal isal 游...

儲存過程小記

use un visa go 建立儲存過程 create procedure pro test yc int,lyq int,nsx int output asif yc lyq print yc lyq else print yc0 and yc 0 set nsx yc print nsx go...

MySQL儲存過程小記

首先來看兩張表 drop table ifexists field indexcreate table field index schema name varchar 100 not null,field name varchar 100 not null,next index int notnul...