Oracle DBMS 中的函式
Oracle 中的不同型別函式如下 -
- Oracle 字串函式
- Oracle 數字函式
- Oracle 日期函式
有關這些函式的詳細資訊如下 -
Oracle 字串函式
以下是 Oracle 字串函式 -
ASCII(str)
此函式返回提供的字串 str 中第一個單詞的 ASCII 或數值。如果它是一個空字串,則返回 0。例如
SQL> SELECT ASCII('Apple'); +---------------------------------------------------------+ | ASCII('Apple') | +---------------------------------------------------------+ | 65 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
它返回 A 的 ASCII 值,即 65,因為它是字串中的第一個字元。
CONCAT(str1,str2…..strn)
此函式透過連線引數列表中的所有字串而返回形成的字串。這些字串可能只有兩個或多個,但它們都將連線在一起。例如
SQL> SELECT CONCAT('Sky', 'Is', 'Beautiful'); +---------------------------------------------------------+ | CONCAT('Sky', 'Is', 'Beautiful') | +---------------------------------------------------------+ |SkyIsBeautiful | +---------------------------------------------------------+ 1 row in set (0.00 sec)
三個字串“Sky”、“Is”、“Beautiful”被連線成一個字串,即“SkyIsBeautiful”
LENGTH(str)
此函式以位元組為單位返回字串 str 的長度。例如
SQL> SELECT LENGTH('happy'); +---------------------------------------------------------+ | LENGTH('happy') | +---------------------------------------------------------+ | 5 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回字串“happy”的長度以位元組為單位,即 5。
LOWER(str)
此函式將所有大寫字元轉換為小寫。例如
SQL> SELECT LOWER('BEAUTY'); +---------------------------------------------------------+ | LOWER('BEAUTY') | +---------------------------------------------------------+ | beauty | +---------------------------------------------------------+ 1 row in set (0.00 sec)
“BEAUTY”的所有字元都轉換為小寫,即“beauty”
STRCMP(str1,str2)
此函式比較兩個字串 str1 和 str2。如果兩個字串相等,則返回 0;如果 str1 大於 str2,則返回 1;如果 str2 大於 str1,則返回 -1。例如 -
SQL> SELECT STRCMP('MIKE', 'MIKE'); +---------------------------------------------------------+ | STRCMP('MIKE', 'MIKE') | +---------------------------------------------------------+ | 0 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
函式返回 0,因為字串“MIKE”和“MIKE”相同。
UPPER(str)
此函式將小寫字母轉換為大寫字母。例如 -
SQL> SELECT UPPER('orange'); +---------------------------------------------------------+ | UPPER('orange') | +---------------------------------------------------------+ | ORANGE | +---------------------------------------------------------+ 1 row in set (0.00 sec)
字串“orange”在大寫字母中轉換為“ORANGE”。
Oracle 數字函式
以下是 Oracle 數字函式
ABS(X)
此函式返回 X 的絕對值。例如
SELECT ABS(-10);
返回 10。
MOD(X,Y)
變數 X 除以 Y,並返回餘數。例如
SELECT MOD(15,2);
返回 1。
SIGN(X)
如果 X 為正數,則返回 1;如果為負數,則返回 -1;如果 X 的值為 0,則返回 0。例如
SELECT SIGN(-20);
返回 -1。
FLOOR(X)
返回小於或等於 X 的最大的整數值。例如
SELECT FLOOR(8.3);
返回 8。
CEIL(X)
返回大於或等於 X 的最小的整數值。例如 −
SELECT CEIL(8.3);
返回 9。
POWER(X,Y)
此函式返回 X 乘冪為 Y 的值。例如
SELECT POWER(3,2);
返回 9。
Oracle 日期函式
以下是 Oracle 字串函式
SYSDATE()
此函式返回系統的當前日期和時間。它是使用最廣泛的 Oracle 函式之一。SYSDATE() 通常與函式 TO_CHAR() 一起使用。例如
TO_CHAR(SYSDATE, ‘MM-DD-YYYY HH:MM:SS’);
以字串形式返回系統日期和時間。在這種情況下,它將是“08-01-2018 12:28:34”。
MONTHS_BETWEEN(x,y)
此函式採用兩個值(即 x 和 y),它們以月份的形式出現。它返回 x 和 y 之間的月份數。
例如:可以使用 MONTHS_BETWEEN() 和引數 SYSDATE 以及員工加入日期來找到員工在公司工作了多少個月數。
SELECT MONTHS_BETWEEN (SYSDATE, EMP_JOIN_DATE) FROM EMP;
假設員工加入日期為 2018 年 1 月 1 日,系統日期為 2018 年 8 月 1 日。因此以上函式將返回 7。
ADD_MONTHS(d,n)
此函式返回與 d 相同天的日期,與 n 相差幾個月。n 的值可以為正數或負數。例如
SELECT SYSDATE, ADD_MONTHS (SYSDATE,2) FROM DUAL;
此函式將返回系統日期和系統日期後 2 個月的日期,即“2018-08-01”和“2018-10-01”。
LAST_DAY(d)
此函式返回函式中提供的特定月份 d 的該月的最後一天。例如
SELECT SYSDATE, LAST_DAY (SYSDATE) FROM DUAL;
它返回系統日期和系統日期的特定月份的最後一天,即“2018-08-01”和“2018-08-31”。