在Oracle数据库中添加列SQL查询

时间:2012-07-17 05:50:49

标签: sql database oracle

我使用的是Oracle数据库(版本是9i),我想在oracle数据库中为当前表添加一列。

我想添加一个整数列来跟踪每个用户的无效尝试,因此默认值应为5.

当我尝试在Sql * Plus中执行此查询时,它会给出错误表或视图不存在(我有双重检查表名是正确的。

ALTER TABLE CustApps_user ADD VALID_TRIES INT DEFAULT 5 NOT NULL;

3 个答案:

答案 0 :(得分:2)

我猜你得到的错误是ORA-00942。这可能意味着许多事情,但基本上它意味着对象不存在于您正在进行的操作的当前范围和上下文中。因此,例如,当我们通过角色而不是直接授予权限时,我们尝试在另一个模式中的表上构建视图时,会抛出错误。

在您的情况下,它可能意味着该表位于另一个架构中。您通常可以通过视图或同义词访问它。您可以通过查询数据字典轻松检查:

select owner, object_type
from all_objects
where object_name = 'CUSTAPPS_USER'

答案 1 :(得分:0)

alter table
   table_name
add
   (
   column1_name column1_datatype column1_constraint,  
   column2_name column2_datatype column2_constraint,
   column3_name column3_datatype column3_constraint
   );

以下是Oracle“alter table”语法的一些示例,用于添加数据列。

alter table
   cust_table
add
   cust_sex  varchar2(1) NOT NULL;

以下是添加多个数据列的Oracle“alter table”语法示例。

ALTER TABLE 
   cust_table 
ADD 
   (
      cust_sex             char(1) NOT NULL,
      cust_credit_rating   number
   );

答案 2 :(得分:-1)

您必须在查询中添加括号:

ALTER TABLE CustApps_user ADD (VALID_TRIES INT DEFAULT 5 NOT NULL);

INT是合法的,但它会转换为NUMBER,因此您也可以使用:

ALTER TABLE CustApps_user ADD (VALID_TRIES NUMBER(38,0) DEFAULT 5 NOT NULL);

或更改(减少)NUMBER精度。