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;

此函数将返回 sysdate 和 sysdate 之后的 2 个月日期,即“2018 年 8 月 1 日”和“2018 年 10 月 1 日”。

LAST_DAY(d)

此函数返回函数中提供的特定月份 d 的最后一天。例如

SELECT SYSDATE, LAST_DAY (SYSDATE)
FROM DUAL;

这将返回系统日期和系统日期的特定月份的最后一天,即“2018 年 8 月 1 日”和“2018 年 8 月 31 日”。

更新于:2020 年 6 月 20 日

6K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.