Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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 为什么甲骨文认为我';我缺少一个右括号?_Sql_Oracle_Ora 00907 - Fatal编程技术网

Sql 为什么甲骨文认为我';我缺少一个右括号?

Sql 为什么甲骨文认为我';我缺少一个右括号?,sql,oracle,ora-00907,Sql,Oracle,Ora 00907,在Oracle 10i中,我运行以下命令: ALTER TABLE jnrvwchnglst ADD ( jnrvwchnglst_userid NUMBER(10) NOT NULL DEFAULT 1 ) Yesjnrvwchnglst是现有表,nojnrvwchnglst\u userid不是现有列 Oracle错误消息为: ORA-00907: missing right parenthesis 这个查询有什么问题?为什么Oracle认为我缺少括号?我以前遇到过这个问题,您

在Oracle 10i中,我运行以下命令:

ALTER TABLE jnrvwchnglst ADD
     ( jnrvwchnglst_userid NUMBER(10) NOT NULL DEFAULT 1 )
Yes
jnrvwchnglst
是现有表,no
jnrvwchnglst\u userid
不是现有列

Oracle错误消息为:

ORA-00907: missing right parenthesis

这个查询有什么问题?为什么Oracle认为我缺少括号?

我以前遇到过这个问题,您不能在同一语句中添加列和设置默认/约束。“缺少右括号”是一种误导。Oracle喜欢在与括号无关的情况下使用该错误(我猜他们的解析逻辑应该是00907)

ALTER TABLE jnrvwchnglst ADD
     ( jnrvwchnglst_userid NUMBER(10) DEFAULT 1  NOT NULL )
试一试


“(NOT)NULL”在语法上必须是“ALTER”中的最后一条语句,所以当Oracle看到这一点时——并且下一个字符(您的“默认”stmt)不是预期的终止权”)抛出了错误。

这不是我的事,而是您用这样的名称在表中究竟保留了什么?初级大众汽车更改列表?:)@Quassnoi-ORM系统从标记中删除元音,因为Oracle的最大字符数(不合理)为30个字符。所以这实际上是“JoinReviewChangelist.”该死的=)或者它可能只是一个操作顺序问题。bah=)这是真的,比如时间戳。然而,Quassnoi的代码确实有效。谢谢希望这能更多地解释为什么你会出错,以帮助解决其他类似的情况。
ALTER TABLE jnrvwchnglst ADD ( nrvwchnglst_userid NUMBER(10) );
ALTER TABLE jnrvwchnglst ALTER ( nrvwchnglst_userid  SET DEFAULT 1 );
UPDATE jnrvwchnglst SET nrvwchnglst_userid = 1 WHERE nrvwchnglst_userid IS NULL;
ALTER TABLE jnrvwchnglst  ALTER ( nrvwchnglst_userid  SET NOT NULL );