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 千次浏览

开启你的职业生涯

完成此课程认证

开始
广告