ORA-00907:查询ALTER TABLE Table_Name时缺少右括号修改了Column_Name

时间:2019-02-20 10:46:04

标签: sql oracle ddl

我有一个要在其中执行此SQL查询的数据库:

ALTER TABLE PARAM_DEF MODIFY UNIT VARCHAR2(400 BYTES);

在SQL Server中,它可以正常工作,但是在Oracle中,我收到此错误:

Error report -
SQL Error: ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"

为什么它在我的Oracle数据库上不起作用?

2 个答案:

答案 0 :(得分:3)

keywords for character length semanticsCHARBYTE-不是BYTES,因此请将其更正为:

ALTER TABLE PARAM_DEF MODIFY UNIT VARCHAR2(400 BYTE);

演示:

create table param_def (unit varchar2(200 byte));

Table PARAM_DEF created.

ALTER TABLE PARAM_DEF MODIFY UNIT VARCHAR2(400 BYTE);

Table PARAM_DEF altered.

desc param_def

Name Null? Type          
---- ----- ------------- 
UNIT       VARCHAR2(400) 

答案 1 :(得分:2)

删除varchar2中的bytes

   ALTER TABLE PARAM_DEF MODIFY 
   UNIT VARCHAR2(400);