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”。

更新於: 2020 年 6 月 20 日

6 千次瀏覽

開啟你的職業生涯

完成此課程認證

開始
廣告