PL SQL
PL SQL
PL SQL
);
Function:-
RETURN number IS
total number(2) := 0;
BEGIN
SELECT count(*) into total
FROM customers;
RETURN total;
END;
DECLARE
c number(2);
BEGIN
c := totalCustomers();
END;
Procedures:-
DECLARE
a number;
b number;
c number;
BEGIN
IF x < y THEN
z:= x;
ELSE
z:= y;
END IF;
END;
BEGIN
a:= 23;
b:= 45;
findMin(a, b, c);
END;
/
Example 2----
DECLARE
c_id int;
c_name customers.name%TYPE;
c_addr customers.address%TYPE;
c_sal customers.salary%TYPE;
AS
BEGIN
FROM customers
WHERE id = c_id;
dbms_output.put_line
('Customer ' ||c_name || ' from ' || c_addr || ' earns ' || c_sal);
END;
BEGIN
c_id:= 5;
details(c_id);
END;
Output—
Statement processed.
Customer Hardik from Bhopal earns 8500
Trigers:
DECLARE
sal_diff number;
BEGIN
END;
UPDATE customers
WHERE id = 2;
output
1 row(s) updated.
Old salary: 2500
New salary: 3000
Salary difference: 500
Cursors:-
DECLARE
c_id customers.id%type;
c_name customers.name%type;
c_addr customers.address%type;
CURSOR c_customers is
BEGIN
OPEN c_customers;
LOOP
END LOOP;
CLOSE c_customers;
END;
Output—
Statement processed.
1 Ramesh Ahmedabad
2 Khilan Delhi
3 kaushik Kota
4 Chaitali Mumbai
5 Hardik Bhopal
6 Komal MP
7 Kriti HP
Pakages:-
Specification---
c_name customers.Name%type,
c_age customers.age%type,
c_addr customers.address%type,
c_sal customers.salary%type);
END c_package;
Body-----
c_name customers.Name%type,
c_age customers.age%type,
c_addr customers.address%type,
c_sal customers.salary%type)
IS
BEGIN
END addCustomer;
BEGIN
WHERE id = c_id;
END delCustomer;
END c_package;
DECLARE
code customers.id%type:= 8;
BEGIN
c_package.delcustomer(code);
END;
Output-----
Statement processed.
Views:-
SELECT *
FROM CUSTOMERS
Output---
I
NAME AGE ADDRESS SALARY
D
1 Ramesh 32 Ahmedabad 2000
2 Khilan 25 Delhi 3000
3 kaushik 23 Kota 2000
RETURN DECIMAL
IS
bonus DECIMAL(18,2);
BEGIN
SELECT CASE
END
INTO bonus
FROM CUSTOMERS
WHERE ID = cust_id;
RETURN bonus;
END calculate_bonus;
/
FROM CUSTOMERS;
1 Ramesh3500 70
2 Khilan 3000 90
6 Komal 4500 90