记DBeaver下诡异的ORA-01843: 无效的月份

问题现象

在日常练习中,通过客户端执行如下SQL报错:ORA-01843: 无效的月份

SELECT to_date('07-DEC-2022','DD-MON-YYYY') FROM dual;

执行后报错信息如下:

SQL 错误 [1843] [22008]: ORA-01843: 无效的月份
Error : 1843, Position : 15, Sql = SELECT to_date(‘07-DEC-2022’,‘DD-MON-YYYY’) FROM dual, OriginalSql = SELECT to_date(‘07-DEC-2022’,‘DD-MON-YYYY’) FROM dual, Error Msg = ORA-01843: 无效的月份
ORA-01843: 无效的月份

在这里插入图片描述

感觉被打了一闷棍,之前也这么执行过没问题的,但是现在数据库没变,SQL没变,突然就开始报错了。

问题分析

因为数据库和SQL都没有变化,所以判断不应该是SQL的语法有问题,将同样的SQL放到SQLPLUS中,发现竟然能执行成功:

SQL> SELECT to_date('07-DEC-2022','DD-MON-YYYY') FROM dual;

TO_DATE('
---------
07-DEC-22

问题解决:

解决方法其实很简单,将DD-MON-YYYY换成DD-MM-YYYY就可以了,而原因就更简单了,跟客户端执行程序有关系,我用PL/SQL执行就没问题,用SQL*PLUS执行也没问题,用DBEVER执行就报错,如果再刨根问底,其实可以定位到是跟客户端程序的驱动属性设置有关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低音钢琴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值