我该怎么办我不断收到 ORA-01861: 文字与格式字符串不匹配 ORA-06512: 在“SYS.DBMS_SQL”,第 1721 行

Avo*_*ado 1 sql oracle

我不断收到 ORA-01861: 文字与格式字符串不匹配 ORA-06512: 在“SYS.DBMS_SQL”,第 1721 行

我该怎么办?

create table TASK (
    TASK_ID number not null constraint task_pk primary key,
    TASK_DESCRIP varchar2(50) not null,
    TASK_STARTING_DATE date not null,
    TASK_ENDING_DATE date not null,
    NUMBER_OF_EMPLOYEE number not null
);

INSERT INTO TASK VALUES(1101,'Initial interview','2018-03-01','2018-03-06','3');
Run Code Online (Sandbox Code Playgroud)

Tho*_*ner 5

您只是缺少关键字DATE

在你的插入语句中你有'2018-03-01'. 这是一个字符串文字,但接收该值的表列的数据类型为DATE。这意味着 Oracle 必须将字符串转换为日期。Now'2018-03-01'不是您所在国家/地区常用的日期格式,因此 Oracle 不知道如何安全地转换它(例如如何确定哪是日、哪是月)。

请改用日期文字。为此,我们必须使用关键字,DATE后跟 format yyyy-mm-dd,这可能是您已经使用的。因此:

INSERT INTO task
  (task_id, task_descrip, task_starting_date, task_ending_date, number_of_employee)
  VALUES(1101, 'Initial interview', DATE '2018-03-01', DATE '2018-03-06', 3);
Run Code Online (Sandbox Code Playgroud)