Kandungan
Oracle PL / SQL error 955, lebih dikenali sebagai ORA-00955, berlaku apabila pengguna membuat objek dalam pangkalan data dengan nama yang digunakan oleh objek yang sudah ada, seperti jadual, pandangan, indeks, sinonim, atau kumpulan. Memberi objek nama yang berbeza menyelesaikan ralat.
ORA-00955 adalah ralat pengecualian yang berlaku dengan nama yang telah diberikan kepada objek lain (Justin Sullivan / Getty Images / Getty Images)
Mesej ralat
Pengguna membuat objek pada baris arahan Oracle PL / SQL dengan nama tertentu dan menerima mesej "Nama ORA-00955 sudah digunakan oleh objek sedia ada".
Punca
Mesej ralat boleh berlaku apabila pengguna memasang kemas kini, menjalankan skrip dalam Oracle PL / SQL yang memadam atau membuat jadual atau indeks, atau menggunakan perkataan yang dikhaskan untuk objek yang ditentukan oleh sistem. Umumnya, pengguna akan cuba membuat objek dengan nama yang telah diberikan kepada objek lain dalam pangkalan data.
Penyelesaian
Pengguna dinasihatkan untuk memilih nama atau objek lain, atau mengubah suai dan menamakan semula objek sedia ada untuk membenarkan penggunaan nama yang dikehendaki. Lihat DBA_OBJECTS atau USER_OBJECTS untuk mengesahkan jika pengguna lain mempunyai nama yang digunakan.
Semak juga nama samaran dan sinonim awam untuk nama yang ada, menggunakan pernyataan berikut:
SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";
Jadual ALL_OBJECTS mengandungi senarai semua objek yang boleh diakses pengguna yang tersedia untuk ID log masuk khusus. Untuk menggunakan semula nama, padam semua objek yang tidak diingini dengan nama yang sama.
Mengabaikan ralat menggunakan pengendalian pengecualian
Pengguna boleh memintas ORA-00955 dengan membuat pengecualian pengecualian yang mengabaikan kesalahan penciptaan objek. Buat kod PL / SQL yang akan mengatasi ralat dan berikan "NULL" kepada statusnya:
MENGHARGAKAN MyNamedTableExists EXCEPTION; pengecualian pragma (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'buat meja tempstore (nombor col1)'; BEGIN / laksanakan sql_stmt segera; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Abaikan kesalahan ORA-955 jika nama jadual sudah ada) / PENGECUALIAN ketika MyNamedTableExists kemudian NULL; END;