Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ORA-01843:不是有效的月份,ORA-00907:缺少右括号 ORA-00907:缺少右括号_Sql_Oracle - Fatal编程技术网

Sql ORA-01843:不是有效的月份,ORA-00907:缺少右括号 ORA-00907:缺少右括号

Sql ORA-01843:不是有效的月份,ORA-00907:缺少右括号 ORA-00907:缺少右括号,sql,oracle,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 VARCHA

语法错误可能在这里:

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
这是什么意思?日期就是日期。它由一天、一个月和一年组成。那么,
'MM-DD-YY'
的作用是什么呢

这样做:

HIRINGDATE DATE('MM-DD-YY')
ORA-01843:不是有效月份
'01-05-95'
是一个字符串。DBMS尝试对此进行解释,并将其转换为日期,日期可能有效,也可能无效,具体取决于您使用的区域设置。请明确命名格式:
至日期('01-05-95','mm dd yy')
,或者最好使用ANSI日期文字:

HIRINGDATE DATE
ORA-00907:缺少右括号 语法错误可能在这里:

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
这是什么意思?日期就是日期。它由一天、一个月和一年组成。那么,
'MM-DD-YY'
的作用是什么呢

这样做:

HIRINGDATE DATE('MM-DD-YY')
ORA-01843:不是有效月份
'01-05-95'
是一个字符串。DBMS尝试对此进行解释,并将其转换为日期,日期可能有效,也可能无效,具体取决于您使用的区域设置。请明确命名格式:
至日期('01-05-95','mm dd yy')
,或者最好使用ANSI日期文字:

HIRINGDATE DATE

什么是日期('MM-DD-YY')?在旁边注:从错误代码中,我们可以看出这是Oracle。我已经为你添加了标签。在Oracle中,使用
VARCHAR2
,而不是
VARCHAR
。一般来说:避免使用两位数的年份。95应该是1995年还是2095年?为了可读性和避免出错,请使用四位数的年份。使用ANSI日期文字(
date'1995-01-01'
),而不是字符串文字。什么是
date('MM-DD-YY')
?,请注意:从错误代码中,我们可以看到这是Oracle。我已经为你添加了标签。在Oracle中,使用
VARCHAR2
,而不是
VARCHAR
。一般来说:避免使用两位数的年份。95应该是1995年还是2095年?为了可读性和避免出错,请使用四位数的年份。使用ANSI日期文字(
date'1995-01-01'
),而不是字符串文字。