Chapter 3. Conditional and Sequential Logic

Without conditional and sequential control statements, our programs would march inexorably from the first statement to the last, unable to respond to a variety of changing circumstances. The IF-THEN, IF-THEN-ELSE, and IF-ELSIF-ELSE conditional statements allow you to execute a block of code only when a specific condition occurs (for example, you might want to call the alert_management procedure only if profits are less than zero). The GOTO statement, a sequential control command, allows you to unconditionally jump, or branch, to another section in the code. While it’s certainly true that the much-reviled GOTO can lead to “spaghetti code,” remember that this lowly statement, along with the IF statement, is the hidden foundation of the iterative constructs we explored in the previous chapter and the exceptions we’ll explore in the next. This chapter tests your ability to use conditional and sequential statements to direct your program’s flow.

Beginner

3-1.

Why doesn’t the following code compile?

BEGIN
   IF SYSDATE > TO_DATE ('01-JAN-1999', 'DD-MON-YYYY')
   THEN
      DBMS_OUTPUT.PUT_LINE ('1999 Already!');
   ENDIF;
END;

3-2.

Why doesn’t the following code compile?

BEGIN
   IF SYSDATE > TO_DATE ('01-JAN-1999', 'DD-MON-YYYY')
   THEN
      DBMS_OUTPUT.PUT_LINE ('1999 Already!');
   ELSEIF SYSDATE < TO_DATE ('01-JAN-1888', 'DD-MON-YYYY')
   THEN
      DBMS_OUTPUT.PUT_LINE ('Living in the past.');
   END IF;
END;

3-3.

Why doesn’t the following code compile?

BEGIN IF SYSDATE > TO_DATE ('01-JAN-1999', ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.