Penyiasatan Ralat ORA-00942: Ketiadaan Jadual atau Lihat
Ralat ORA-00942 boleh berlaku apabila pengguna cuba berinteraksi dengan jadual yang tidak wujud dalam pangkalan data. Ini boleh mengecewakan terutamanya apabila menghadapi ralat ini semasa operasi INSERT, seperti yang ditunjukkan dalam coretan kod yang disediakan.
Ralat yang dilaporkan menunjukkan bahawa jadual "pelanggan" tidak ditemui. Satu sebab biasa untuk ini ialah cuba mengakses jadual menggunakan pengguna atau skema yang berbeza daripada pengguna yang menciptanya. Dalam senario ini, pengguna yang disambungkan dengan akaun sistem berkemungkinan telah mencipta jadual, tetapi pengguna yang mempunyai keistimewaan terhad cuba mengaksesnya.
Walau bagaimanapun, satu lagi kemungkinan punca ralat ORA-00942, terutamanya dalam Oracle persekitaran 12c, boleh dikaitkan dengan penggunaan jujukan. Jika jadual menggunakan jujukan untuk menetapkan nilai lalai untuk salah satu lajurnya dan pengguna yang melaksanakan pertanyaan INSERT tidak mempunyai keistimewaan SELECT pada jujukan.
Untuk menggambarkan kes ini, pertimbangkan senario berikut:
Penyelesaian kepada isu ini ialah memberikan keistimewaan SELECT pada jujukan kepada pengguna yang melaksanakan pertanyaan INSERT:
GRANT SELECT ON seq_customer_id TO User2;
Dengan memastikan keistimewaan yang sesuai tidak diberikan hanya pada jadual tetapi juga pada sebarang urutan yang berkaitan, pengguna boleh mengelakkan ralat ORA-00942 dan berjaya berinteraksi dengan jadual dalam pangkalan data mereka.
Atas ialah kandungan terperinci Mengapa Saya Mendapat ORA-00942: Jadual atau Paparan Tidak Wujud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!