我创建了一张表:
create table emp(empno number(4),ename varchar2(10),job varchar2(9),mgr number(4),hiredate date,sal number(7,2),comm number(7,2),deptno number(2)
我想插入数据,可是总是提示错误:SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 9月 10 11:05:12 2010Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> insert into emp values(1111,'SMITH','AAA',1233,'1980-02-12',123,22,33);
insert into emp values(1111,'SMITH','AAA',1233,'1980-02-12',123,22,33)
                                               *
ERROR at line 1:
ORA-01861: literal does not match format string
SQL>
我用的是Oracle10g特别版(西欧版)
那个Date类型应该怎么写,才能不报错?

解决方案 »

  1.   

    insert into emp values(1111,'SMITH','AAA',1233,to_char('1980-02-12','YYYY-MM-DD',123,22,33);或者insert into emp select 1111,'SMITH','AAA',1233,to_char('1980-02-12','YYYY-MM-DD',123,22,33 from dual;
      

  2.   

    需要用to_date转换一下insert into emp values(1111,'SMITH','AAA',1233,to_date('1980-02-12','YYYY-MM-DD',123,22,33);或者insert into emp select 1111,'SMITH','AAA',1233,to_date('1980-02-12','YYYY-MM-DD',123,22,33 from dual;
      

  3.   

    insert into emp values(1111,'SMITH','AAA',1233,to_date('1980-02-12','YYYY-MM-DD',123,22,33);
      

  4.   

    '1980-02-12' 就成了字符型 如果要用日期的要to_date()下
    to_date('1980-02-12','yyyy-mm-dd')
      

  5.   

    SQL> insert into emp values(1111,'SMITH','AAA',1233,to_date('1980-02-12','YYYY-M
    M-DD'),123,22,33);1 row created.SQL>可以啦,谢谢各位!!
      

  6.   


    insert into emp values(1111,'SMITH','AAA',1233,to_date('1980-02-12','yyyy-mm-dd'),123,22,33);
      

  7.   

    orinsert into emp2 values(1111,'SMITH','AAA',1233,date'1980-02-12',123,22,33)