日期:2014-05-17  浏览次数:20657 次

从书上照抄一个例子,居然出错了
从《Oracle   Database   10gSQL开发指南》(oracle   press出版)P103上照抄一个例子:
select   MONTHS_BETWEEN( '25-MAY-2005 ', '15-JAN-2005 ')   from   dual;

        然后放到sql   worksheet上运行,居然说 '25-MAY-2005 '是无效的月份。不知道怎么解释这个错误?

        运行环境:win   xp   sp2,     oracle   10g



------解决方案--------------------
估计你的language是中文,你可以试试 '25-7月-2005 ',或把SESSION的语言改一下
alter session set nls_language=american;
------解决方案--------------------
select months_between (to_date( '25-05-2005 ', 'DD-MM-YYYY '),to_date( '15-01-2005 ', 'dd-MM-yyyy ')) from dual;
------解决方案--------------------
看看你操作系统的区域设置是什么?
------解决方案--------------------
你的Oracle默认语言是中文,但你插入的是英文习惯的日期,在执行你那条select语句之前先改Session:
alter session set nls_data_language=english;