web-dev-qa-db-ja.com

変更する列がID列ではありません

S_ROLL NUMBER(3) NOT NULLを持つテーブルを作成しました。次に、この列をID列として作成します。このコマンドを使用しました

alter table students
modify
(
S_ROLL NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY
);

次に、このエラーが発生します。

S_ROLL NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY
*
ERROR at line 4:
ORA-30673: column to be modified is not an identity column
10
Asif Mushtaq

IDENTITY列として既存の列を変更することが現在サポートされていないという理由だけで、このエラーが発生します。

解決策は、新しい列を追加してから既存の列を削除することです(データも処理するようにしてください)。

18
Incognito

既存の列を変更して列を識別することはサポートされていないため。したがって、以下のクエリを使用して新しい列を追加できます。

ALTER TABLE students ADD (S_ROLL_NEW NUMBER(3) GENERATED ALWAYS AS IDENTITY);
0
Shariar Imtiaz