ORA-01843:无效月份,ORA-00907:缺少右括号

时间:2019-02-04 22:31:57

标签: sql oracle

create table programer(IDNO NUMBER, PROJECTID VARCHAR(5),LASTNAME VARCHAR(30),FIRSTNAME VARCHAR(30),HIRINGDATE DATE('MM-DD-YY') ,LANGUAGES VARCHAR(15),TASKNO INT,Privileges VARCHAR(25));
create table programer(IDNO NUMBER, PROJECTID VARCHAR(5),LASTNAME VARCHAR(30),FIRSTNAME VARCHAR(30),HIRINGDATE DATE('MM-DD-YY') ,LANGUAGES VARCHAR(15),TASKNO INT,Privileges VARCHAR(25))
Error report -
ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
*Cause:    
INSERT INTO PROGRAMER VALUES(201,'NPR','GUPTA','SAURAV','01-01-95','VB',52,'SECRET');
INSERT INTO PROGRAMER VALUES(201,'NPR','GUPTA','SAURAV','01-05-95','VB',52,'SECRET')
Error report -
ORA-01843: not a valid month

1 个答案:

答案 0 :(得分:2)

ORA-00907:缺少右括号

语法错误可能在这里:

HIRINGDATE DATE('MM-DD-YY')

这应该是什么意思?日期是一个日期。它由一天,一个月和一年组成。那么'MM-DD-YY'的作用是什么?

进行以下操作:

HIRINGDATE DATE

ORA-01843:无效月份

'01-05-95'是一个字符串。 DBMS会尝试对此进行解释并将其转换为日期,根据您使用的区域设置,该日期可能会或可能不会起作用。明确命名格式:to_date('01-05-95', 'mm-dd-yy'),或者更好地使用ANSI日期文字:

date '1995-01-05'