1

Oracle データベース (バージョンは 9i) を使用しており、Oracle データベースの現在のテーブルに列を追加したいと考えています。

ユーザーごとの無効な試行を追跡するために整数列を追加したいので、デフォルト値は 5 にする必要があります。

Sql*Plus でこのクエリを実行しようとすると、エラー テーブルが表示されるか、ビューが存在しません (テーブル名が正しいことを再確認しました。

ALTER TABLE CustApps_user ADD VALID_TRIES INT DEFAULT 5 NOT NULL;
4

3 に答える 3

2

発生しているエラーは ORA-00942 だと思います。これは多くのことを意味する可能性がありますが、基本的には、オブジェクトが現在のスコープと実行中のコンテキストに存在しないことを意味します。したがって、たとえば、直接ではなくロールを通じて権限が付与されている場合に、別のスキーマのテーブルにビューを作成しようとすると、エラーがスローされます。

あなたの場合、おそらくテーブルが別のスキーマにあることを意味します。通常、ビューまたはシノニムを介してアクセスしている可能性があります。これは、データ ディクショナリにクエリを実行することで簡単に確認できます。

select owner, object_type
from all_objects
where object_name = 'CUSTAPPS_USER'
于 2012-07-17T09:08:13.833 に答える
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
   );
于 2014-02-12T10:28:35.790 に答える
-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 精度を変更 (減少) します。

于 2012-07-17T07:33:33.830 に答える