Chapter 3. Conditional and Sequential Logic
A classic typo in the world of PL/SQL: the “END” is glommed together with the “IF”. You need a space in between:
Another classic typo in the world of PL/SQL: when you write an ELSE-IF clause, you must drop the “E” at the end of “ELSE”, as in:
Yet another classic typo in the world of PL/SQL: when you write an ELSE clause, you do not provide a THEN after the ELSE. Just the ELSE, ma’am.
It’s always a good idea to minimize the levels of nested IFs (and loops as well). In this case, you can take advantage of the ELSIF clause as follows:
IF salary < 10000 THEN bonus := 2000; ELSIF salary < 20000 THEN bonus := 1500; ELSIF salary < 40000 THEN bonus := 1000; ELSE bonus := 500; END IF;
I hope you will agree that this code is more readable!
Yes, the sorry_you_are_not_that_sick procedure executes. The ELSE statements executes if previous IF and ELSIF clauses all evaluate to FALSE or NULL.
You can use the GOTO command, or you can RAISE an exception.
You have to go to a label . A label in PL/SQL is an identifier (maximum of 30 characters, starts with a letter, etc.) that is surrounded by pairs of angle brackets, as shown here:
BEGIN GOTO skip_two_lines; democrats; republicans; <<skip_two_lines>> try_the_new_party;
In this block of code, you never get to the Democrats and the Republicans (as if they can be avoided). Instead, you skip right to the New Party. If that interests you, check it out at www.newparty.org ...