pl/sql 中的 Next_Day 函数

Posted

技术标签:

【中文标题】pl/sql 中的 Next_Day 函数【英文标题】:Function Next_Day in pl/sql 【发布时间】:2021-12-29 07:00:21 【问题描述】:

功能不工作。怎么了?我使用数据库 18c xe。

【问题讨论】:

请不要提供图片/链接。在此处向我们展示您的代码,并告诉我们“不工作”是什么意思。 【参考方案1】:

它有效,但您应该使用您的数据库使用的语言。我的会说克罗地亚语。

(只需设置日期格式;您不必这样做):

SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'DD.MM.YYYY';

Session altered.

您的查询在我的数据库中也不起作用:

SQL> select next_day(sysdate, 'MONDAY') from dual;
select next_day(sysdate, 'MONDAY') from dual
                         *
ERROR at line 1:
ORA-01846: not a valid day of the week

但是,如果我在星期一使用克罗地亚名称,那么它可以工作:

SQL> select next_day(sysdate, 'PONEDJELJAK') from dual;

NEXT_DAY(S
----------
03.01.2022

或者,改变会话 - 那么第一个查询也可以:

SQL> ALTER SESSION SET NLS_DATE_LANGUAGE = 'ENGLISH';

Session altered.

SQL> select next_day(sysdate, 'MONDAY') from dual;

NEXT_DAY(S
----------
03.01.2022

SQL>

你来自……波兰?按照我的建议尝试使用“poniedziałek”。

【讨论】:

【参考方案2】:

select next_day(sysdate, 'mon') from dual

你可以试试这个吗?

根据您的语言设置 nls_date_language 并尝试

更改会话集 NLS_DATE_LANGUAGE = "ENGLISH";

【讨论】:

以上是关于pl/sql 中的 Next_Day 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 PL/SQL 中的 VARRAY 函数中的变量传递字符串值

vsize 函数不能与 PL/SQL 中的修剪函数一起使用

如何在 pl/sql 函数中的变量中存储多行?

过程中的 Pl/Sql Oracle 函数

ORACLE PL/SQL 中的表值函数

在 PL/SQL 中的触发器内调用函数