I tried to create a procedure (that obviously contained errors in PL/SQL body) and got the following message:
Warning: Procedure created with compilation errors.
I didn't believe the object (procedure) was really (physically) created in the database just because of errors in it. Since, by default, Oracle doesn't show my errors, to see the errors I had to type:
SQL> SHOW ERRORS
To see if the object (procedure) really existed in the database anyway, as SYS I executed the admin script:
SQL> @utlrp.sql
OBJECTS WITH ERRORS
-------------------
1
(there had been neither objects with errors nor invalid objects before)
So, even though procedure source code contained errors, the object (procedure) was created (compiled), it exists in the database, but is invalid.
Oracle creates stored procedure even though it has errors? I cannot imagine any compiler or development tool on the market (Microsoft, Borland, SUN, IBM, Intel, GNU gcc etc.) that would build a project with errors. And then I have to ask Oracle to show errors? Why to ask for something that is obvious as must-have?
Hmm... The more I know Oracle, the less I like it.
Albert