MySQL⽆效的⽉份_ORACLE 插⼊时间时显⽰⽆效的⽉份的
问题
以前出现了ORA-01843的错误.这个错误代表⽆效的⽉份⼀般在⽇期转化的时候会提⽰。
解决⽅法
alter session set NLS_DATE_FORMAT='DD-MON-YY';
今天插⼊数据时⼜遇到'⽆效的⽉份'的错误.
翻看了半天发现:在客户端系统⾥的字符集使⽤的是中⽂的环境,(select sysdate from
dual;可以通过此语句查看).
SYSDATE
--------------
04-9⽉ -07
解决⽅法:exit退出sqlplus.进⼊cmd 输⼊set
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
重新登录sqlplus system/systempwd
执⾏select sysdate from dual;
SYSDATE
------------
04-SEP-07
再次执⾏插⼊数据脚本程序,问题解决
可这个问题⼀直没有彻底解决,就是,⼀旦退出sqlplus.如果不再设置,字符集设置⼜回到了以前的样⼦.不知有没有⼀劳永逸的⽅法?
(我的⽅法是在环境变量⾥设置⼀个NLS_LANG = AMERICAN_AMERICA.ZHS16GBK)jsp做网页
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.
C:\Documents and
Settings\Administrator>sqlplus
php网页制作作业SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 3⽉ 22 13:56:17
2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights
reserved.
请输⼊⽤户名: scott/a123456
连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
git rebase 为什么是危险的操作
mysql语句转oracleJServer Release 9.2.0.1.0 - Production
SQL> CREATE TABLE EMP
2 (EMPNO NUMBER(4) NOT NULL,
3 ENAME VARCHAR2(10),
4 JOB VARCHAR2(9),
5 MGR NUMBER(4),
6 HIREDATE DATE,
7 SAL NUMBER(7, 2),
8 COMM NUMBER(7, 2),
9 DEPTNO NUMBER(2));
表已创建。
常用的汇编指令
SQL> INSERT INTO EMP VALUES
2 (7521, 'WARD', 'SALESMAN',
7698,
java抛异常怎么终止程序3 TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250, 500, 30);
TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250, 500, 30)
*
ERROR 位于第 3 ⾏:
ORA-01843: ⽆效的⽉份
SQL> alter session set nls_language=american
;
Session altered.
SQL> INSERT INTO EMP VALUES
2 (7521, 'WARD', 'SALESMAN',
7698,
3 TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250, 500, 30);
1 row created.
SQL> commit ;
Commit complete.
SQL>
------解决⽅法--------------------------------------------------------估计你的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;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论