簡體   English   中英

在Oracle數據庫中添加列SQL查詢

[英]Add a column SQL query in Oracle database

我正在使用Oracle數據庫(版本為9i),並且想向oracle數據庫中的當前表添加一列。

我想添加一個整數列以跟蹤每個用戶的無效嘗試,因此默認值應為5。

當我嘗試在Sql * Plus中執行此查詢時,它給出了錯誤表或視圖不存在(我已經仔細檢查了表名是否正確。

ALTER TABLE CustApps_user ADD VALID_TRIES INT DEFAULT 5 NOT NULL;

我猜您收到的錯誤是ORA-00942。 這可能意味着很多事情,但是從根本上講,這意味着該對象在您正在執行的操作的當前范圍和上下文中不存在。 因此,例如,當我們通過角色而非直接被授予特權時,嘗試在另一個架構的表上構建視圖時,就會拋出該錯誤。

在您的情況下,這可能意味着該表位於另一個模式中。 通常,您可能正在通過視圖或同義詞來訪問它。 您可以通過查詢數據字典輕松地進行檢查:

select owner, object_type
from all_objects
where object_name = 'CUSTAPPS_USER'
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
   cust_table
add
   cust_sex  varchar2(1) NOT NULL;

這是一個Oracle“更改表”語法的示例,用於添加多個數據列。

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

您必須在查詢中添加括號:

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精度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM