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

解决方案 »

  1.   

    有同事说Oracle不识别月份MAR,怎么修改
      

  2.   

    追加:ORA-01843: 无效的月份
      

  3.   

    月份无效,你把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;
      

  4.   

    或者insert into ep values( 1001 , '张无忌' , 'Manager' , 10000 , 2000 , 
    to_date('12-mar-2009','dd-mon-yyyy','nls_date_language=American') , 1005 , 10) 这样也可以。
      

  5.   

    这个是环境变量nls_date_language的问题如果你是在本机做测试,建议在注册表的当前主键内加入以下串
    nls_date_language,值设为American
    这样就是MAR了或者你也可以写成
    to_date('12-3月-10','dd-mon-yy')