-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path009_PL_SQL_INTRO.sql
More file actions
145 lines (126 loc) · 2.65 KB
/
009_PL_SQL_INTRO.sql
File metadata and controls
145 lines (126 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
-- PL/SQL
-- PROCUDURAL LANGUAGE EXTENSION FOR SQL
-- PL/SQL -> DEDICATED FOR ORACLE
-- FUNCTIONS, PROCEDURES, TRIGGERS
-- LOOP, CONDITIONALS, VARIABLE DECLARATIONS
-- PL/SQL structure
-- DECLARE (Optional) - > INITIALIZING VARIABLES
-- BEGIN (Mandatory)
-- Holding the executable code
-- EXCEPTION (Optional)
-- Used to throw exception, if there are any
-- DBMS_OUTPUT.PUT_LINE()
SET SERVEROUTPUT ON;
-- PRINT HELLO WORLD ON TO THE SCREEN USING PL/SQL
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World');
END;
/
-- DECLARE Block
-- USED TO DECLARE / INITIALIZE VARIABLES
DECLARE
-- VARIBLE DECELARTION -> VARIABLE_NAME DATATYPE
a NUMBER;
b NUMBER;
c NUMBER;
BEGIN
-- ASSIGNMENT OPERATOR :=
a := 10;
b := 20;
c := a + b;
DBMS_OUTPUT.PUT_LINE('Sum is: ' || c);
END;
/
DECLARE
a NUMBER;
b NUMBER;
c NUMBER;
BEGIN
a := &val1; -- > TO TAKE INPUT FROM USER (& SYMBOL)
b := &val2;
c := a + b;
DBMS_OUTPUT.PUT_LINE('Sum is: ' || c);
END;
/
-- FOR FETCHING DATA FROM TABLE
-- INTO PL/SQL
DECLARE
sal1 NUMBER;
sal2 NUMBER;
sal_sum NUMBER;
BEGIN
SELECT salary INTO sal1 FROM employee WHERE id = 1;
SELECT salary INTO sal2 FROM employee WHERE id = 2;
sal_sum := sal1 + sal2;
DBMS_OUTPUT.PUT_LINE('Sum of salaries is: ' || sal_sum);
END;
/
-- CONDITIONALS IN PL/SQL
-- IF, ELSE ELSIF
-- IF condition THEN
-- IF
-- END IF;
-- MAX OF THREE NUMBERS
DECLARE
a NUMBER;
b NUMBER;
c NUMBER;
max_of_three NUMBER;
BEGIN
a := 10;
b := 20;
c := 30;
IF a >= b AND a >= c THEN
max_of_three := a;
ELSIF b >= c AND b >= a THEN
max_of_three := b;
ELSE
max_of_three := c;
END IF;
DBMS_OUTPUT.PUT_LINE(max_of_three);
END;
/
-- LOOPS
-- WHILE (condition)
-- FOR
-- EVERY LOOP MUST END WITH END LOOP;
-- PRINTING 1 TO 10 USING WHILE LOOP IN PL/SQL USING WHILE
-- WHILE condition LOOP
DECLARE
i NUMBER;
BEGIN
i := 1;
WHILE i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE('Number: ' || i);
i := i + 1;
END LOOP;
END;
/
-- DBMS_OUTPUT.PUT_LINE()
-- DBMS_OUTPUT.PUT() --> ACCUMLATES THE RESULT
-- 'I am Gopi From ADITYA UNIVERSITY'
BEGIN
DBMS_OUTPUT.PUT('I am Gopi ');
DBMS_OUTPUT.PUT('From ADITY UNIVERSITY');
DBMS_OUTPUT.NEW_LINE(); -- PRINTS EVERYTING ACCUMULATED SO FOR
END;
/
-- FOR loop
-- SYNTAX :
-- FOR loop_variable IN start_number..end_number LOOP
-- BODY
-- END LOOP;
-- INSTEAD OF BREAK WE CAN USE EXIT;
BEGIN
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
END;
/
-- TO PRINT 10 9 8 7, , , , 1;
BEGIN
FOR i IN REVERSE 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
END;
/