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

oracle插入date类型数据 20分
Name     Type         Nullable Default Comments 
-------- ------------ -------- ------- -------- 
EMPNO    NUMBER(4)    Y                         
ENAME    VARCHAR2(20) Y                         
JOB      VARCHAR2(10) Y                         
SALARY   NUMBER(7,2)  Y                         
BONUS    NUMBER(7,2)  Y                         
HIREDATE DATE         Y                         
MAR      NUMBER(4)    Y                         
DEPTNO   NUMBER(2)    Y 
这是表结构
insert into emp values( 1001 , '张无忌' , 'Manager' , 10000 , 2000 , 
to_date('12-MAR-10','dd-MON-YY') , 1005 , 10);
这个出错,请指导一下
oracle

------解决方案--------------------
月份无效,你把mar换成3不就行了?
create table ep
(epno number,
ename varchar2(50),
job varchar2(50),
sal number(7,2),
bonus number(7,2),
hiredate date,
mar number(4),
deptno number(2)
);

insert into ep values( 1001 , '张无忌' , 'Manager' , 10000 , 2000 , 
to_date('12-3-10','dd-mm-YY') , 1005 , 10);
commit;

select * from ep;
------解决方案--------------------
或者insert into ep values( 1001 , '张无忌' , 'Manager' , 10000 , 2000 , 
to_date('12-mar-2009','dd-mon-yyyy','nls_date_language=American') , 1005 , 10) 这样也可以。
------解决方案--------------------
这个是环境变量nls_date_language的问题。。。

如果你是在本机做测试,建议在注册表的当前主键内加入以下串
nls_date_language,值设为American
这样就是MAR了

或者你也可以写成
to_date('12-3月-10','dd-mon-yy')