-
Notifications
You must be signed in to change notification settings - Fork 0
/
Intro-w1.sql
105 lines (97 loc) · 2.69 KB
/
Intro-w1.sql
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
--Question 1
DECLARE
student_name varchar2(40);
student_number int(11);
BEGIN
student_name:=:student_name;
student_number:=:student_number;
dbms_output.put_line('My Name is ' || student_name || ' And my student accont is :' || student_number);
END;
--Question 2
DECLARE
datenow DATE := SYSDATE;
datetomorrow DATE;
dayt NUMBER(2);
dtname VARCHAR(10);
dtmname VARCHAR(10);
yname VARCHAR(20);
BEGIN
datetomorrow := datenow + 1;
dayt := TO_CHAR(datetomorrow, 'DD');
dtname := TO_CHAR(datetomorrow,'DAY');
dtmname := TO_CHAR(datetomorrow, 'Mon');
yname := TO_CHAR(datetomorrow, 'YEAR');
dbms_output.put_line('Tomorrow : ' || dtname || ' ' || dayt || ' ' || dtmname || ' ' || yname);
END;
--QUESTION 3
DECLARE
fnum INT:=0;
fnum2 INT:=0;
fnum3 NUMBER(2);
tomul INT;
res INT;
BEGIN
tomul:=:tomul;
--basic loop
dbms_output.put_line('Basic LOOP');
LOOP
fnum:= fnum+1;
res := fnum * tomul;
dbms_output.put_line(fnum || ' * ' || tomul || ' = ' || res);
exit WHEN fnum = 10;
END LOOP;
--whileloop
dbms_output.put_line('While LOOP');
WHILE fnum2 <10 LOOP
fnum2:=fnum2+1;
res := fnum2 * tomul;
dbms_output.put_line(fnum2 || ' * ' || tomul || ' = ' || res);
END LOOP;
--forloop
dbms_output.put_line('For LOOP');
FOR fnum3 in 1 .. 10 LOOP
res := fnum3 * tomul;
dbms_output.put_line(fnum3 || ' * ' || tomul || ' = ' || res);
END LOOP;
END;
--QUESTION 4
DECLARE
fibofirst INT :=0;
fibosecond INT :=1;
fibotemp INT;
fibolimit NUMBER(2);
BEGIN
fibolimit:=:fibolimit;
dbms_output.put_line(fibofirst);
dbms_output.put_line(fibosecond);
FOR a in 1 .. fibolimit LOOP
fibotemp := fibofirst + fibosecond;
dbms_output.put_line(fibotemp);
fibofirst:= fibosecond;
fibosecond:= fibotemp;
END LOOP;
END;
--QUESTION 5
DECLARE
accountNumber VARCHAR(9):=&id;
subNr INT;
sub VARCHAR(1);
multip INT :=0;
beforeTotal INT :=0;
total INT :=0 ;
rest INT;
BEGIN
dbms_output.put_line(accountNumber);
FOR a in REVERSE 1 .. 9 LOOP -- THIS ONE WE NEED TO SPECIFY REVERSE
sub := substr(accountNumber, a, 1);
subNr := to_number(sub);
dbms_output.put_line('Sub Number : ' || sub);
multip := multip + 1;
beforeTotal := multip * subNr;
total := total + beforeTotal;
dbms_output.put_line('Multiplication : ' || beforeTotal);
dbms_output.put_line('Total : ' || total);
END LOOP;
rest := mod(total, 11);
dbms_output.put_line(total || ' Modulo 11 : ' || rest);
END;