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 オブジェクト (プロシージャ、関数、パッケージ、トリガー) で使えるが、テーブル、インデックス、順序には存在しない。
同じデータベースの他の項目
- ORA-01536space quota exceeded for tablespace(表領域の領域割り当て制限を超過)
- direct path read待機: バッファキャッシュを経由せず、セッションがブロックを直接 PGA に読み取っている
- latch: cache buffers chains待機: cache buffers chains ラッチの競合
- ORA-02449unique/primary keys in table referenced by foreign keys(表の一意/主キーが外部キーにより参照されている)
- ORA-01950no privileges on tablespace 'name'(表領域に対する権限がない)
- ORA-01110data file N: 'path'(データファイル N: 'path')
- ORA-16038log N sequence# M cannot be archived(ログ N (順序番号 M) をアーカイブできない)