PL/SQL Fundamentals Exercises: PL/SQL block to show the Operator Precedence
PL/SQL Fundamentals: Exercise-11 with Solution
Write a PL/SQL block to show the operator precedence and parentheses in several more complex expressions.
PL/SQL Code:
DECLARE
salary NUMBER := 40000;
commission NUMBER := 0.15;
BEGIN
-- Division has higher precedence than addition:
DBMS_OUTPUT.PUT_LINE('8 + 20 / 4 = ' || (8 + 20 / 4));
DBMS_OUTPUT.PUT_LINE('20 / 4 + 8 = ' || (20 / 4 + 8));
-- Parentheses override default operator precedence:
DBMS_OUTPUT.PUT_LINE('7 + 9 / 3 = ' || (7 + 9 / 3));
DBMS_OUTPUT.PUT_LINE('(7 + 9) / 3 = ' || ((7 + 9) / 3));
-- Most deeply nested operation is evaluated first:
DBMS_OUTPUT.PUT_LINE('30 + (30 / 6 + (15 - 8)) = '
|| (30 + (30 / 6 + (15 - 8))));
-- Parentheses, even when unnecessary, improve readability:
DBMS_OUTPUT.PUT_LINE('(salary * 0.08) + (commission * 0.12) = '
|| ((salary * 0.08) + (commission * 0.12))
);
DBMS_OUTPUT.PUT_LINE('salary * 0.08 + commission * 0.12 = '
|| (salary * 0.08 + commission * 0.12)
);
END;
/
Sample Output:
8 + 20 / 4 = 13 20 / 4 + 8 = 13 7 + 9 / 3 = 10 (7 + 9) / 3 = 5.33333333333333333333333333333333333333 30 + (30 / 6 + (15 - 8)) = 42 (salary * 0.08) + (commission * 0.12) = 3200.018 salary * 0.08 + commission * 0.12 = 3200.018 Statement processed. 0.01 seconds
Flowchart:

Go to:
PREV : Write a PL/SQL block to adjust the salary of the employee whose ID 122.
NEXT : Write a PL/SQL block to create a procedure using the "IS [NOT] NULL Operator" and show AND operator returns TRUE if and only if both operands are TRUE.
Improve this sample solution and post your code through Disqus
What is the difficulty level of this exercise?
