DBAtlas · データベース運用アトラス

ORA-00955: name is already used by an existing object(名前は既存のオブジェクトが使用している)

Oracle

意味

作成しようとしているオブジェクト (テーブル、インデックス、ビュー、シーケンス、シノニムなど) の名前が、同じスキーマ内の別のオブジェクトですでに使われている。Oracle ではオブジェクト名はスキーマ内で一意であり、テーブル、ビュー、順序といった異なる種類も同じ名前空間を共有する。

原因

CREATE 文で選んだ名前が既存オブジェクトと衝突している。よくある落とし穴: テーブルと同じ名前で順序やビューを作成しようとする。または自動作成されたインデックス名 (例: 主キーインデックス) が指定した名前と衝突する。

対処方法

別の名前を選ぶか、競合するオブジェクトを削除する。その名前を使っているオブジェクトを特定する: SELECT object_type, object_name FROM user_objects WHERE object_name = 'YOUR_NAME'; 本当に置き換えたい場合は古いオブジェクトを DROP する (先にデータをバックアップする)。CREATE OR REPLACE はビュー、シノニム、型、PL/SQL オブジェクト (プロシージャ、関数、パッケージ、トリガー) で使えるが、テーブル、インデックス、順序には存在しない。

DBAtlas で開く →

同じデータベースの他の項目