1. Write a block/procedure to display sum of digits of a three digit number
CREATE OR REPLACE FUNCTION sum_of_digits(num INTEGER) RETURNS INTEGER AS $$ DECLARE digit1 INTEGER; digit2 INTEGER; digit3 INTEGER; sum INTEGER; BEGIN digit1 := num / 100; digit2 := (num % 100) / 10; digit3 := num % 10; sum := digit1 + digit2 + digit3; RAISE NOTICE 'Sum of digits of % is %', num, sum; RETURN sum; END; $$ LANGUAGE PLPGSQL; select sum_of_digits(123);
2. Write a block/procedure to display square of 1 to 10
CREATE OR REPLACE FUNCTION squares() RETURNS VOID AS $$ DECLARE num INTEGER := 1; square INTEGER; BEGIN WHILE num <= 10 LOOP square := num * num; RAISE NOTICE '%^2 = %', num, square; num := num + 1; END LOOP; END; $$ LANGUAGE PLPGSQL; select squares(); 3. Write a block to display/procedure Fibonacci series upto 8 th term (start with 0,1) CREATE OR REPLACE FUNCTION fibonacci() RETURNS VOID AS $$ DECLARE prev1 INTEGER := 0; prev2 INTEGER := 1; fib INTEGER; i INTEGER := 1; BEGIN WHILE i <= 8 LOOP IF i = 1 THEN fib := 0; ELSEIF i = 2 THEN fib := 1; ELSE fib := prev1 + prev2; prev1 := prev2; prev2 := fib; END IF; RAISE NOTICE 'Fibonacci(%): %', i, fib; i := i + 1; END LOOP; END; $$ LANGUAGE PLPGSQL; select fibonacci();
4.Write a PL/block to access contents of any one tuple of employee relation. Display the contents using raise notice statement