首頁  >  文章  >  資料庫  >  oracle函數是什麼

oracle函數是什麼

青灯夜游
青灯夜游原創
2022-02-22 17:29:203715瀏覽

在oracle中,函數又被稱為PL/SQL子程序,是作為資料庫物件儲存在oracle資料庫中的;函數會對傳遞進來的參數進行處理,並傳回一個處理結果,也就是返回一個值。 oracle函數可分為兩類:系統函數和使用者自訂函數。

oracle函數是什麼

本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。

Oracle函數的定義

函數是作為資料庫物件儲存在oracle資料庫中,函數又被稱為PL/SQL子程式。

函數會對傳遞進來的參數進行處理,並傳回一個處理結果,也就是傳回一個值。通常用於傳回特定的數據。

oracle函數可分為兩類:系統函數和使用者自訂函數。

ORACLE函數之單行函數

  • #不改變真實數據,只對數據進行進一步修飾或處理顯示
  • 可和欄位混合使用

    偽表:真實存在的表,方便進行資料驗證而暫時存在;表名:dual

##1.字元函數

函數名稱作用#範例結果initcap(char)首字母大寫initcap('nice')Nicelower(char)轉為小寫lower('NICE')niceupper('nice')ltrim('nice','ni')rtrim('nice','e')concat('ni','ce')substr('nice',2,2)instr('nice','c')translate('nice','ne','01')replace('nice','c','cc')
##upper(char) 轉為大寫
NICE ltrim(char,set) 左剪
ce rtrim(char,set) 右剪
nic #concat(char1,char2) 字串連接
nice substr(char,pos,len) 取子字串
ic instr(char,substr) 查子字串位置
3 translate(char,key,value) 按字元映射翻譯
0ic1 replace( char,old,new) 字串替換
nicce

2.數值函數#範例結果abs(-3)mod(3,2)sign(-3)ceil(3.2)floor(3.2)round(3.236,2)power(3,2)sqrt(4)trunc(3.233,2 )sin(0)cos(0)
#函數名稱
abs(n) 取絕對值
3 mod(m,n) 取餘
1 sign(n) 取符號
-1 ceil(n) 向上取整
4 floor(n) 向下取整
3 round(m,n) 四捨五入為指定小數位數
#3.24 power(m,n) m的n次方
9 #sqrt(n) 平方根
2 trunc(m,n) #截斷
3.23 sin(n) 正弦
#cos(n) 餘弦
1############

3.日期函數

函數名稱 作用 範例 #結果
months_between(date1,date2) 傳回兩天期間的月份(若date1在行事曆中比date2早,則回傳一個負數,反之則回傳一個正數) months_between('01-8月-2020','01-8月-2020') #0
#add_months(date,m) 傳回把月份數加到日期上的新日期 add_months('25-8月-2020',-1) 25-7月-2020
next_day(date,week) 傳回指定新日期後的星期對應的新日期 # next_day('23-8月-2020','星期一') 24-8月-2020
last_day(date) 傳回指定日期所在月的最後一天 last_day('25-8月-2020') 31-8月-2020
round (date,p) 依指定格式對日期進行四捨五入 round(to_date('25-8月-2020'),'YEAR') 1- 1月-2021
trunc(date,p) 對日期以指定方式截斷 trunc(to_date('25-8  月- 2020'),'YEAR') 01-1月-2020

註:

    ##p為YEAR, round依1-6月及7-12月,四捨五入至最近的yyyy年1月;trunc截取到本年第一天。
  • p為MONTH,round依1-15日及16-30日,四捨五入至最近mm月的1日;trunc截取到本月第一天。
  • p為DAY,round依週一至週三和週四至週日,四捨五入至最近的週日。 trunc截取到本週第一天。

oracle函數之多行函數

  • 函數名稱max(欄位名稱)傳回該欄位最大值#min(欄位名稱)傳回該欄位最小值
    #不能和普通欄位及單行函數混合使用,除非分組
  • sum(欄位名稱)

傳回該欄位的和#avg(欄位名稱)

    返回此欄位平均值
  • count(*)
  • #傳回表格記錄數

    count(欄位名稱)

    傳回非空值數量

    count(distinct 欄位名稱)

  • 回傳去重後欄位值數量
  • oracle函數之轉換函數

#to_number(數值類型的字元):將字元轉換為數值

to_char(數值或日期):將數值或日期轉換為字元
  • #指定顯示格式:

    9表示佔位,例:999,999,999會將數字以三個一組逗號隔開。
  • 0表示佔位,若實際資料位數不足,則用0補位。

    L表示人民幣符號,$表示美元符號。
  • 附註:數值與字元之間可隱式轉換。

to_date(日期格式的字元):將字元轉換為日期(一般新增使用,查詢用to_char)

常用日期格式:yyyy-mm-dd

yyyy/mm/dd######'yyyy"年"mm"月"dd"日"'######註:字元必須符合日期格式;oracle預設轉換格式為日月年,例'25-8月-2020'。 ##################oracle函數之其他函數###################nvl(字段名,新的值) :若欄位值不為null,則傳回該欄位值;若為null,則傳回新的值。 ############nvl2(字段名,處理1,處理2):若字段值不為null,則執行處理1;若為null,則執行處理2。 ############decode(字段名,值1,處理1,值2,處理2,值3,處理3,...,公共處理):若字段值和decode中條件值相同,則執行對應的處理。若都沒有,則執行公共處理。 ############推薦教學:《###Oracle教學###》###

以上是oracle函數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn