1

Oracle SqlDeveloper の使用

テーブル T には 2 つの列 ID (Number) Desc (VARCHAR2) があります。

次のクエリを試して、チェックを追加します。

ALTER TABLE T
ADD CONSTRAINT 100chk CHECK (ID BETWEEN 0 AND 100);

エラー レポート: SQL エラー: ORA-00902: 無効なデータ型 00902. 00000 - "無効なデータ型" *原因:
*アクション:

ID 列は数値データ型です。その制約を追加できないのはなぜですか?

4

1 に答える 1

7

Oracle はおそらくあなたの制約名に混乱しています100chk。有効な名前は文字で始まります。無効な名前を二重引用符で囲むと、Oracle はそれを受け入れることができますが、これは一般的に悪い考えであると考えられています。

chk100代わりに、制約に名前を付けてみてください。

ALTER TABLE T ADD CONSTRAINT chk100 CHECK (ID BETWEEN 0 AND 100);

Oracle のオブジェクト命名規則はこちらです。このリンクは 10.2 用ですが、情報は 11.x にも当てはまります。

于 2013-05-09T20:52:08.113 に答える