एक ORA-00942 त्रुटि आम तौर पर एक संकलन समय त्रुटि होने वाली है। Oracle को संकलन समय पर तालिकाओं के नाम (नामों) को हल करना होता है। अपवाद हैंडलर रनटाइम पर त्रुटियों को ट्रैप करेंगे, संकलन समय पर नहीं।
यदि आपने डायनेमिक SQL का उपयोग किया है, तो आप नामों के रिज़ॉल्यूशन को रनटाइम पर स्थगित कर सकते हैं, जिस बिंदु पर आप अपवाद को पकड़ सकते हैं, अर्थात
SQL> ed
Wrote file afiedt.buf
1 declare
2 no_such_table exception;
3 pragma exception_init( no_such_table, -942 );
4 l_cnt integer;
5 begin
6 execute immediate 'select count(*) from emps' into l_cnt;
7 exception
8 when no_such_table
9 then
10 dbms_output.put_line( 'No such table' );
11* end;
SQL> /
No such table
PL/SQL procedure successfully completed.
लेकिन सामान्य रूप से संग्रहीत प्रक्रियाओं को लिखने के लिए यह एक समझदार तरीका नहीं है। आपकी प्रक्रियाओं को पता होना चाहिए कि वास्तव में कौन सी तालिकाएँ मौजूद हैं और सिंटैक्स त्रुटियों को विकास के दौरान पहचाना और हल किया जाना चाहिए, न कि रनटाइम पर।