我在sql*plus中打开了一个脚本,内容是这样的:
SET FEEDBACK OFF
CREATE TABLE Agents
     (AgentID         INTEGER        NOT NULL,
      FirstName       NVARCHAR2(30),
      LastName        NVARCHAR2(30),
      HireDate        DATE,
      BirthDate       DATE,
      Gender          NVARCHAR2(10),
      WorkPhone       NVARCHAR2(20),
      CellPhone       NVARCHAR2(20),
      HomePhone       NVARCHAR2(20),
      Title           NVARCHAR2(20),
      TaxID           NVARCHAR2(20),
      LicenseID       NVARCHAR2(20),
      LicenseDate     DATE,
      LicenseExpire   DATE,
      LicenseStatusID INTEGER,
      CONSTRAINT pk_Agents PRIMARY KEY (AgentID)
     );
INSERT INTO Agents VALUES (10041, 'Kai', 'Marcoux', '03-Oct-96', '12-Dec-70', 'M', '(707) 555-0361', '(707) 555-5313', '(707) 555-7185', 'Salesperson', '868-26-8646', 107157413, '30-Jan-97', '01-Feb-00', 1001);
INSERT INTO Agents VALUES (10235, 'Tobias', 'Carling', '19-Dec-00', '19-Oct-75', 'M', '(707) 555-1983', '(707) 555-5662', '(707) 555-0930', 'Salesperson', '988-80-3528', 110315480, '24-May-01', '01-Jun-04', 1002);
INSERT INTO Agents VALUES (10429, 'Elizabeth', 'Dahlen', '23-May-05', '03-Oct-69', 'F', '(707) 555-7218', '(707) 555-1512', '(707) 555-6112', 'Salesperson', '775-29-1524', 107449992, '22-Dec-04', '01-Jan-08', 1001);
commit;
但是用start语句执行后每个插入的语句都显示错误:“无效的月份”,我自己查书后把月份都改成大写,但是结果还是一样。请问还有什么其他方面的错误导致的??

解决方案 »

  1.   

    '03-Oct-96'改成to_date('03-Oct-96','dd-Mon-yy') 試一下吧
      

  2.   

    更正一下
    to_date('03-Oct-96','dd-mon-rr')
      

  3.   

    --'03-Oct-96' 把所有这样的改成下面的
    to_date('03-Oct-96','dd-mon-rr','NLS_DATE_LANGUAGE = American')
      

  4.   

    楼上正解--或者先修改session
    alter session set NLS_LANGUAGE=AMERICAN;
    --插入的时候用这个格式就可以了
    to_date('03-Oct-96','dd-mon-rr')
      

  5.   

    insert 语句中时间格式更改下九OK了to_date('03-Oct-96','dd-mon-rr')
      

  6.   

    to_date('03-Oct-96','dd-mon-rr')
      

  7.   

    '03-Oct-96'这个是字符型 而你的字段为date型。
    to_date()是转换为date型,'dd-mon-rr'这个是时间的格式
      

  8.   

    其他的解释如楼上 ,'NLS_DATE_LANGUAGE = American'这个是设置语言格式
    03-Oct-96 因为你这个是英文格式,所有你的语言要改为American
      

  9.   

    需要把char转化为date类型,所以需要使用to_date函数如
    insert into table_name
    (date_field)
    values
    (to_date('2010/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'));