SQL> create table ab
2 (a integer,
3 b date
4 );表已创建。SQL> insert into ab values
2 (1,'12-OCT-2010');
(1,'12-OCT-2010')
*
第 2 行出现错误:
ORA-01843: 无效的月份
--------------------------------------
我按照书上来写的,‘12-OCT-2010’:12表示日期,OCT表示月份,2010表示年份。
2 (a integer,
3 b date
4 );表已创建。SQL> insert into ab values
2 (1,'12-OCT-2010');
(1,'12-OCT-2010')
*
第 2 行出现错误:
ORA-01843: 无效的月份
--------------------------------------
我按照书上来写的,‘12-OCT-2010’:12表示日期,OCT表示月份,2010表示年份。
要直接插入字符串的话要对应好格式
select * from nls_session_parameters where parameter='NLS_DATE_FORMAT'
to_date('12-OCT-2010','DD-MON-YYYY','nls_date_language=American')
或者用to_date('12-10月-2010','DD-MON-YYYY')
alter session set nls_date_language=American;
SQL> create table ab
2 (a int,
3 b date
4 )
5 tablespace myts
6 /表已创建。
SQL> insert into ab values(1,to_date('12-OCT-2010','dd-month-yyyy'))已创建 1 行。SQL> select * from ab; A B
---------- ------------
1 12-OCT-10
只要对应得当怎么写都没问题,例如to_date('12/02/2005 15:30:30',dd/MM/yyyy hh24:mi:ss')
这里二月不能写成 2,应当对应着来写
4楼的写法正确
--------------------------------------------------------
SQL> create table ab
2 (a integer,
3 b date);表已创建。SQL> insert into ab values(1,to_date('12-OCT-2010','dd-month-yyyy'));
insert into ab values(1,to_date('12-OCT-2010','dd-month-yyyy'))
*
第 1 行出现错误:
ORA-01843: 无效的月份------------------------------------------------------------------
你这样肯定插得进去。
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';
然后 insert into ab values (1, to_date('12-OCT-2010', 'YY-MON-YYYY'));
9楼的插入方法行了
但10楼的修改后也不行
----------------------------------------------------------------------
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';会话已更改。SQL> insert into ab values (1, to_date('12-OCT-2010', 'YY-MON-YYYY'));
insert into ab values (1, to_date('12-OCT-2010', 'YY-MON-YYYY'))
*
第 1 行出现错误:
ORA-00911: 无效字符
----------------------------------------------------------------------我学习的脚本全是'12-OCT-2010'格式的
怎样修改才能直接用那种格式啊
谢谢
原因是我这里是中文的环境,改为英文环境就行
具体解决方法:http://student.csdn.net/space.php?uid=108420&do=blog&id=6531
感谢各位的支持和帮助