PL/SQL 內建函數

一些內建函數可以被用於執行各種各樣的操作。

字符操作

  • UPPER(string)
    返回大寫的字符串
  • LOWER(string)
    返回小寫的字符串
  • INITCAP(string)
    把每個單詞的首字母大寫
  • SUBSTR(string, begin_index[, length_of_substring])
    提取指定string的子串,begin_index表示子串的開始爲止,從1開始,可以使用負數表示從字符串的尾部開始,length_of_substring爲可選的子串長度,如果不指定將提取從begin_index開始的所有子串
  • INSTR(origin_string, target_string[, begin_index, times_occurence])
    origin_string找到target_string, begin_index爲開始查找的位置,可以爲負數表示從尾部開始查找,不指定時從字符串開始查找times_occurence表示查找第幾次出現,不指定時默認爲第一次
  • LPAD(string, length[, padded_char(s)])
    從左邊用字符padded_char(s)填補字符串string爲指定長度length,如果不指定padded_char(s),則以空格填充
  • RPAD(string, length[, padded_char(s)])
    從右邊用字符padded_char(s)填補字符串string爲指定長度length,如果不指定padded_char(s),則以空格填充
  • REPLACE (string, pattern_string, replace_string)
    replace_string代替string中匹配pattern_string的部分
  • TRANSLATE(string, pattern_string, replace_string)
    類似REPLACE,但是替換操作是一個字符一個字符按pattern_stringreplace_string的一一對應關係匹配進行
    的,而不是像REPLACE是以整個模式pattern_string匹配的
  • LTRIM(string, pattern)
    從左邊移除string中符合pattern的內容,pattern爲一一匹配,如果不指定pattern,默認爲空格
  • RTRIM(string, pattern)
    從右邊移除string中符合pattern的內容,pattern爲一一匹配,如果不指定pattern,默認爲空格
  • TRIM([BOTH|LEFT|RIGHT pattern FROM] string)
    string兩邊或者左邊或者右邊符合pattern的部分,如果不指定方向,默認爲BOTHpattern爲一一匹配,如果不指定pattern,默認爲空格

數值操作

  • ROUND(number[, round_position])
    四捨五入number到指定的位置round_position,如果round_position爲正,則保留到小數點右邊的位置round_position,如果爲負,則直接在小數點左邊的位置round_position處舍入,如果trunc_position沒有指定,則舍入到整數
  • TRUNC(number[, trunc_position])
    類似ROUND,不過不會入位,而是直接截斷,如果round_position爲正,則保留到小數點右邊的位置round_position,如果爲負,則直接在小數點左邊的位置round_position處截斷(round_position位置處以及之後的整數部分全部置爲0),如果trunc_position沒有指定,則截斷到整數
  • FLOOR(number)
    返回等於或小於number的最大整數
  • CEIL(number)
    返回等於或大於number的最小整數
  • MOD(dividend, divisor)
    返回兩個dividenddivisor的餘數,兩數符合相同時,規則爲dividend - divisor * FLOOR (dividend/divisor), 符合不同時,規則爲dividend- divisor * CEIL(dividend/divisor
  • REMAINDER(dividend, divisor)
    返回兩個dividenddivisor的餘數,兩數符合相同時,規則爲dividend - (divisor * X), 符合不同時,規則爲m - n * CEIL(m/n),X爲距離dividend/divisor最近的整數,如果出現x.5的情況,則取距離最近的偶數
  • TO_CHAR(number[, masker])
    把數值類型number轉換爲字符類型,可以通過指定masker控制輸出的字符串格式,如果不指定masker,則以包括所有有效數字的默認格式轉換

日期操作

  • EXTRACT( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND FROM date)
    獲取時間date中的特定部分
  • TO_CHAR(date[, mask, properties])
    把時間類型date轉換爲字符類型,可以通過指定masker控制輸出的字符串格式,如果不指定masker,則以默認格式轉換,通過properties可以指定額外的屬性重寫數據庫的配置,比如修改表示日期時用的語言NLS_DATE_LANGUAGE=some_language,通過設置mask也可以實現類似EXTRACT的效果,獲取時間裏面的特定部分
  • TO_DATE(date_string[, mask])
    mask指定的格式,轉換字符串date_stringDATE
  • TO_TIMESTAMP (date_string[, mask])
    mask指定的格式,轉換字符串date_stringTIMESTAMP
  • TRUNC (date[, mask])
    mask指定的要求,把date設置到某個時間點,比如一月的第一天,如果不指定mask,那麼將會把時間部分設置爲00:00:00,即把date設置爲當天的開始
  • ADD_MONTHS(date, number_of_month)
    date移動number_of_month指定的月數,number_of_month爲正往前移動,爲負往後移動
  • NEXT_DAY(date, weekday)
    下一個weekday,weekday可以是SUNDAY | MONDAY | TUESDAY | WEDNESDAY | THURSDAY |FRIDAY |SATURDAY
  • LAST_DAY(date)
    返回date指定的月份的最後一天的DATE

輸出打印

  • DBMS_OUTPUT.put_line(string)
    打印一行文本到控制檯
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章