【发布时间】:2022-01-22 06:05:15
【问题描述】:
我收到错误消息:ORA-01843: not a valid month after execution a sql plus script.
我尝试使用“标准”日期格式 yyyy-mm-dd。
SQL/PL 不理解 alter session 语句吗?
set linesize 200
set pagesize 1000
alter session set NLS_NUMERIC_CHARACTERS = ',.';
alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd';
select
*
from my_table
where
date >= '2019-08-31';
exit
【问题讨论】:
-
您的“日期”列的数据类型是什么? (“日期”是一个保留字,所以我严重怀疑它是列的实际名称)。请更新您的问题以提供minimal reproducible example
-
你用的是什么接口? SQL开发者?蟾蜍? PLSQL 开发者?其中一些使用自己的 NLS 参数并且不尊重您的
ALTER SESSION。在任何情况下,正确的解决方案是在右侧的字符串之前添加关键字date,将其从文本文字转换为日期文字。日期文字需要'yyyy-mm-dd'格式(没有其他格式可用于日期文字),并且不依赖于NLS_DATE_FORMAT。