Here goes:   I execute this statement:   CREATE OR REPLACE FUNCTION ndf    RETURN NUMBER IS BEGIN    RAISE NO_DATA_FOUND;  END; /   We all know what that function is going to do, right? #Fail, as one might say on Twitter.   So the brain teaser is:    I n the block below, replace <statement> with a single statement that does not contain any exception handling, but does call the NDF function, so that after the block executes, "NDF? What NDF?" is displayed on the screen.    DECLARE    n   NUMBER; BEGIN    <statement>    DBMS_OUTPUT.PUT_LINE ( 'NDF? What NDF?' ); END; /    I will wait a bit to post my answer. I encourage you to post yours as a comment to this blog post.   Wait....  Wait....  Wait for it....   OK!   After a couple of days of collecting responses on this post and also in LinkedIn, it's time to publish the answer:   You can replace <statement> with any DML statement that executes the function, and the failure of the function with an unh...
For the last twenty years, I have managed to transform an obsession with PL/SQL into a paying job. How cool is that?