一些內建函數可以被用於執行各種各樣的操作。
字符操作
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_string
和replace_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
的部分,如果不指定方向,默認爲BOTH
,pattern
爲一一匹配,如果不指定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)
返回兩個dividend
和divisor
的餘數,兩數符合相同時,規則爲dividend - divisor * FLOOR (dividend/divisor)
, 符合不同時,規則爲dividend- divisor * CEIL(dividend/divisor
REMAINDER(dividend, divisor)
返回兩個dividend
和divisor
的餘數,兩數符合相同時,規則爲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_string
到DATE
TO_TIMESTAMP (date_string[, mask])
以mask
指定的格式,轉換字符串date_string
到TIMESTAMP
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)
打印一行文本到控制檯