Oracle中缺少关键字错误

时间:2012-12-22 18:23:22

标签: sql oracle alter-table

我正在尝试更改SQL中的列数据类型,但它让我错过了关键字错误。我已经看过如何在几个地方更改一个列,他们都给了我这个查询:

我正在使用它:

 ALTER TABLE CARD 
  MODIFY COLUMN Charged NUMBER(4,2);

3 个答案:

答案 0 :(得分:2)

COLUMN关键字是多余的 - 这应该有效:

ALTER TABLE Card MODIFY Charged NUMBER(4,2)

有趣的是,标准SQL不支持MODIFY(在我去检查SQL Syntax之前我不知道)。根据SQL标准(ISO / IEC 9079-2:2003),您可以写:

11.12 <alter column definition>(p572)

更改列及其定义。

<alter column definition>    ::=   ALTER [ COLUMN ] <column name> <alter column action>

<alter column action>    ::=
           <set column default clause>
     |     <drop column default clause>
     |     <add column scope clause>
     |     <drop column scope clause>
     |     <alter identity column specification> 

(在SQL 2003中,MODIFY不是SQL关键字)。在此公式中,允许使用关键字COLUMN,但这是可选的。与“真正的”DBMS不同,它似乎也不允许更改列的类型。

答案 1 :(得分:0)

您缺少括号,应省略COLUMN一词:

ALTER TABLE CARD MODIFY ( Charged NUMBER(4,2));

有关如何修改列的示例,请参阅this documentation

答案 2 :(得分:0)

不要将“column”用作关键字:

ALTER TABLE card
MODIFY charged NUMBER(4,2);