【发布时间】:2017-09-14 04:18:39
【问题描述】:
尝试向表中插入一些插入时出现此错误。
收到关于无效月份的错误,当我尝试更改它时,我收到无效数字错误。
ORA-01843: not a valid month ORA-06512: at "SYS.DBMS_SQL"
代码:
CREATE TABLE ExpenseReport (
ERNo NUMERIC(10) NOT NULL,
ERDesc VARCHAR(255) NOT NULL,
ERSubmitDate DATE DEFAULT CURRENT_TIMESTAMP,
ERStatusDate DATE NOT NULL,
ERStatus VARCHAR(8) DEFAULT 'PENDING',
SubmitUserNo NUMERIC(10) NOT NULL,
ApprUserNo NUMERIC(10) NOT NULL,
CONSTRAINT ExpenseReport_CK1 CHECK (ERStatusDate >= ERSubmitDate),
CONSTRAINT ExpenseReport_CK2 CHECK (ERStatus = 'PENDING'/'APPROVED'/'DENIED'),
CONSTRAINT ExpenseReport_PK1 PRIMARY KEY(ERNo),
CONSTRAINT ExpenseReport_FK1 FOREIGN KEY(SubmitUserNo) REFERENCES Users(UserNo),
CONSTRAINT ExpenseReport_FK2 FOREIGN KEY(ApprUserNo) REFERENCES (USerNo)
);
INSERT INTO ExpenseReport
(ERNo, ERDesc, ERSubmitDate, ERStatusDate, ERStatus, SubmitUserNo, ApprUSerNo)
VALUES (1,'Sales Presentation','8/10/2002','8/26/2002','APPROVED',3,4);
我也尝试过使用TO_DATE,但没有运气,
任何人都可以看到我哪里出错了。
【问题讨论】:
-
你是说
to_date('8/26/2002' , 'mm/dd/yyyy')不起作用? -
我也试过用这种方式插入到 ExpenseReport (ERNo, ERDesc, ERSubmitDate, ERStatusDate, ERStatus, SubmitUserNo, ApprUSerNo) VALUES (1,'Sales Presentation',TO_DATE('01/01/02 ','DD/MM/YY'),TO_DATE('02/02/03','DD/MM/YY'),'APPROVED',3,4);
-
@John - 当你这样做时发生了什么? (另外,为什么你在这个中使用 2 位数的年份?你似乎也有切换日期和月份?)
-
@AlexPoole - 只是想尽一切办法让它发挥作用,我尝试了多年的 2 位数字和基于我在其他问题上看到的 4 位数字。由于某种原因,我不断收到有关月份数的错误
-
您在该评论中显示的代码不会引发该错误。如果你混淆了几天和几个月,你通常会明白这一点,通常是隐含的,就像你在问题中的原始陈述一样。