oracle函式的一些簡單例子

2021-08-09 01:27:28 字數 3661 閱讀 1831

--數值型函式

select ceil(12.3) from dual;   --大於或等於n的最小整數

select floor(12.3) from dual;  --小於等於n的最大整數

select mod(15,2) from dual;    --取餘

select power(2,4) from dual;   --2的4次方

select round (3.1415926,2) from dual;  --保留幾位有效數字

select sign(-12) from dual;    --判斷正負,正返回1,負返回-1

select sqrt(16) from dual;     --開平方

--字元型函式

select initcap('liu guotai') from dual;     --首字母大寫

select lower('adfhbsdjfksdkjf') from dual;  --全部小寫

select upper('jdsfbsjfbbi') from dual;      --全部大寫

select replace('liuguotai','l','y') from dual;  --代替字元函式,將liuguotai中l變成y

select substr('123456',4,3) from dual;      --擷取字串

select length('1234567')from dual;          --長度

select '123'||'456' from dual;              --將字串連線(這個不屬於函式)

select concat('123','456') from dual;       --正兒八經的字串連線函式

select lpad('12345',6,'0') from dual;       --固定字串長度為6,不足在前面補第三個引數的值

--如果固定長度小於字串長度,則返回從左數長度為固定長度的字元

select rpad('12345',6,'0') from dual;       --與上面相反

--如果固定長度小於字串長度,則返回從左數長度為固定長度的字元

select ltrim('    123') from dual;        --去左邊空格

select rtrim('123           ')from dual;  --去右邊空格

select soundex('cat') from dual;      --從str返回乙個soundex字串。兩個字串應該有幾乎是相同的同音字串(並不是很清楚是什麼意思)

select translate('123456','123','abc')  from dual;  --將引數1中與引數2相同部分轉換成引數3

select ascii('abcd') from dual;    --返回引數中第乙個字元的ascii碼

select instr('aptech is aptechap','ap',1,2) from dual;  --引數1要查詢的字串,

--引數2要查詢哪個字元在引數1中的位置,引數3查詢開始位置,引數4第幾次出現,返回其位置

--日期函式

select sysdate from dual;       --獲取當前時間

select last_day(sysdate) from dual;--本月最後一天

select add_months(sysdate,2) from dual;  --從本月向後推兩個月

select months_between(sysdate,to_date('2017/09/07','yyyy/mm/dd')) from dual; --兩個日期之間差幾個月(可能會出現小數)

select next_day( sysdate, '星期一') from dual;  ---當前日期後第一周指定週幾的日期(在這裡星期幾需要寫漢字)

select to_date('2016/09/03','yyyy/mm/dd hh24:mi:ss') from dual;    --to_date的簡單用法

--關於日期轉換函式(to_char)

select to_char(sysdate,'dd') from dual;    --顯示日期的天  dd

select to_char(sysdate,'mm') from dual;    --顯示日期的月  mm(盡量用mm不要寫mm)

select to_char(sysdate,'yyyy') from dual;  --顯示日期的年份

select to_char(sysdate,'yyy') from dual;   --年份的後三位

select to_char(sysdate,'yy') from dual;    --顯示年份的後來兩位

select to_char(sysdate,'y') from dual;     --顯示年份的後一位

select to_char(sysdate,'q') from dual;     --顯示該日期的季度(每三個月為乙個季度)

select to_char(sysdate,'rm')from dual;     --日期的羅馬表示

select to_char(sysdate,'month') from dual; --與之前的mm相比,多了乙個月字

select to_char(to_date('2016/09/03','yyyy/mm/dd'),'ww') from dual;    --顯示現在是這一年的第幾周

select to_char(sysdate,'w') from dual;     --顯示現在是這個月的第幾周

select to_char(sysdate,'ddd') from dual;   --當年的第幾天

select to_char(sysdate,'dd') from dual;    --當月第幾天

select to_char(sysdate,'d') from dual;     --當周第幾天

select to_char(to_date('2016/09/04','yyyy/mm/dd'),'dy') from dual;    --當前天是第幾天

select to_char(sysdate,'hh12:mi:ss') from dual;    --轉換成12小時制

select to_char(sysdate,'hh24:mi:ss') from dual;    --24小時制顯示當前時間

--select sysdate from dual;           直接獲取當前時間(24小時制)

select to_char(sysdate,'yyyy[mm@dd') from dual;    --這句話是說明只要yyyy等寫對了,其它格式自己隨意

--執行結果2017[10@06

--關於不知道怎麼分類的

--數字與字串之間

select to_char(123456) from dual;     --數字轉換成字串(可以進行字串的一些操作)

select ltrim(to_number('0123456')) from dual; --字串轉成數字(前提是可以轉換)

begin

dbms_output.put_line('12334');                  ---輸出函式,執行完之後在頂上點輸出可以看到結果

end;

oracle函式 儲存過程一些簡單例子

區別 1.返回值的區別,函式有1個返回值,而儲存過程是通過引數返回的,可以有多個或者沒有 2.呼叫的區別,函式可以在查詢語句中直接呼叫,而儲存過程必須單獨呼叫.函式一般情況下是用來計算並返回乙個計算結果而儲存過程一般是用來完成特定的資料操作 比如修改 插入資料庫表或執行某些ddl語句等等 例子 游標...

oracle一些函式的簡單應用

b 一 select sysdate time from dual b sysdate 5 24 60 60 在系統時間基礎上延遲5秒 sysdate 5 24 60 在系統時間基礎上延遲5分鐘 sysdate 5 24 在系統時間基礎上延遲5小時 sysdate 5 在系統時間基礎上延遲5天 ad...

一些oracle函式

使用case表示式直接在select語句中執行條件邏輯 select ename,sal,case when sal 2000 then underpaid when sal 4000 then overpaid else ok end as status from emp coalesce函式用實...