Sei sulla pagina 1di 8

OUTPUT

SQL> Rem 1.Develop a stored function that returns the Engine


Capacity or engine displacement in Liters for the given
displacement in cubic inches.

SQL> CREATE OR REPLACE FUNCTION convert3(x IN NUMBER)


2 RETURN NUMBER IS
3 temp NUMBER(10,2);
4 BEGIN
5 temp:=0.0164*x;
6 RETURN temp;
7 END;
8 /

Function created.

SQL>
SQL> DECLARE
2 id1 NUMBER(10);
3 cicap NUMBER(10);
4 litre NUMBER(10,2);
5
6 BEGIN
7
8 id1:=&id1;
9 SELECT CAR_dETAILS.Edispl INTO cicap
10 FROM CAR_dETAILS
11 WHERE CAR_dETAILS.Id=id1;
12 litre:=convert3(cicap);
13 dbms_output.put_line('Engine Displacement:-');
14 dbms_output.put_line('CU.INCHES LITRES');
15 dbms_output.put_line(cicap || ' ' ||
litre);
16
17
18 EXCEPTION
19
20 WHEN no_data_found THEN
21 dbms_output.put_line('Car ID does not exist');
22
23 END;
24 /

Enter value for id1: 32


old 8: id1:=&id1;
new 8: id1:=32;
Engine Displacement:-
CU.INCHES LITRES
360 5.9

PL/SQL procedure successfully completed.

SQL> rem 2. Develop a stored function which returns the


car that exactly or nearly matches the mpg and acceleration of
the car. If no car matches, then return the car that matches
rem either mpg or acceleration.

SQL> CREATE OR REPLACE FUNCTION findc1(x IN NUMBER, y IN


NUMBER)
2 RETURN NUMBER IS
3 temp NUMBER(10):=0;
4
5 BEGIN
6 SELECT ID INTO temp
7 FROM CAR_dETAILS
8 WHERE MPG=x AND Accelerate=y AND rownum=1;
9
10 IF(temp=0)THEN
11 SELECT ID INTO temp
12 FROM CAR_dETAILS
13 WHERE MPG=x OR Accelerate=y AND rownum=1;
14 END IF;
15
16 RETURN temp;
17 END;
18 /

Function created.

SQL> DECLARE
2
3 id1 NUMBER(10);
4 mpg1 NUMBER(10);
5 acc1 NUMBER(10,2);
6 model1 VARCHAR2(100);
7 desc1 VARCHAR2(100);
8
9 BEGIN
10
11 mpg1:=&mpg1;
12 acc1:=&acc1;
13
14 id1:=findc1(mpg1,acc1);
15
16 SELECT CAR_NAMES.Model,CAR_NAMES.DESCRIPTION INTO
model1,desc1
17 FROM CAR_NAMES INNER JOIN CAR_DETAILS ON
CAR_DETAILS.ID=CAR_NAMES.ID
18 WHERE CAR_NAMES.ID=id1;
19
20 dbms_output.put_line(' CAR ID ' || ' MODEL
' || ' CAR NAME ' || ' MPG ' || ' ACC
');
21 dbms_output.put_line(id1 || ' ' || model1 ||
' ' || desc1|| ' ' || mpg1 || ' ' || acc1
);
22
23 EXCEPTION
24
25 WHEN no_data_found THEN
26 dbms_output.put_line('Car MPG and ACC does not
match');
27
28
29 END;
30 /
Enter value for mpg1: 14
old 11: mpg1:=&mpg1;
new 11: mpg1:=14;
Enter value for acc1: 14.5
old 12: acc1:=&acc1;
new 12: acc1:=14.5;
CAR ID MODEL CAR NAME MPG ACC
96 ford ford gran torino 14 14.5

PL/SQL procedure successfully completed.


SQL>rem3.Consider the problem 3 in assignment 6. The best car
is determined by the lowest fuel consumption cost to the trip.
Input the model, distance (miles) to reach the spot and fuel p
rice ($ / gallons of gas) to the stored function that returns
the car ID which consumes minimum fuel cost:
Fuel consumption cost =(miles / mpg) x fuel price.

SQL> CREATE OR REPLACE FUNCTION findu1(x IN NUMBER, y IN


NUMBER)
2 RETURN NUMBER IS
3 temp NUMBER(10);
4
5 BEGIN
6
7 IF(x>y)THEN
8 temp:=x;
9 ELSE
10 temp:=y;
11 END IF;
12 RETURN temp;
13 END;
14 /

Function created.

SQL> DECLARE
2
3 model5 VARCHAR2(100) := '&model5';
4 distance1 NUMBER(10);
5 price1 NUMBER(10,2);
6 mpg1 NUMBER(10);
7 minmpg NUMBER(10):=0;
8 desc1 VARCHAR2(100);
9 id1 NUMBER(10);
10 cost1 NUMBER(10,2);
11
12 CURSOR getmodel(model5 IN VARCHAR2) IS
13 SELECT CAR_DETAILS.ID, CAR_DETAILS.MPG,
CAR_NAMES.DESCRIPTION
14 FROM CAR_DETAILS INNER JOIN CAR_NAMES ON
CAR_NAMES.ID=CAR_DETAILS.ID
15 WHERE CAR_NAMES.MODEL=model5;
16
17 BEGIN
18 distance1:=&distance1;
19 price1:=&price1;
20
21
dbms_output.put_line('****************************************
********************');
22 dbms_output.put_line('Model: ' || model5);
23 dbms_output.put_line('Distance(miles): ' || distance1 ||
' ' || 'Price($/Gallon): $' || price1);
24
dbms_output.put_line('****************************************
********************');
25 dbms_output.put_line('Car ID Desccription
MPG Fuel Cost' );
26 OPEN getmodel(model5);
27
28 LOOP
29 FETCH getmodel INTO id1,mpg1,desc1;
30 EXIT when getmodel%notfound;
31 minmpg:=findu1(minmpg,mpg1);
32 cost1:=(distance1*price1)/mpg1;
33 dbms_output.put_line(id1 || ' ' || desc1
|| ' ' || mpg1 || ' ' ||
cost1);
34 END LOOP;
35
dbms_output.put_line('****************************************
********************');
36 SELECT CAR_DETAILS.ID, CAR_NAMES.DESCRIPTION INTO
id1,desc1
37 FROM CAR_DETAILS INNER JOIN CAR_NAMES ON
CAR_NAMES.ID=CAR_DETAILS.ID
38 WHERE CAR_DETAILS.MPG=minmpg AND CAR_NAMES.MODEL=model5;
39 dbms_output.put_line('Car ID: ' || id1 || ', Name: ' ||
desc1 || ' is the best car for your trip!');
40
dbms_output.put_line('****************************************
********************');
41 dbms_output.put_line('Enjoy your trip with the lowest
fuel consumption and cost !!!!!!!');
42
dbms_output.put_line('****************************************
********************');
43
44 END;
45 /
Enter value for model5: opel
old 3: model5 VARCHAR2(100) := '&model5';
new 3: model5 VARCHAR2(100) := 'opel';
Enter value for distance1: 100
old 18: distance1:=&distance1;
new 18: distance1:=100;
Enter value for price1: 2
old 19: price1:=&price1;
new 19: price1:=2;
************************************************************
Model: opel
Distance(miles): 100 Price($/Gallon): $2
************************************************************
Car ID Desccription MPG
Fuel Cost
58 opel 1900 28
7.14
126 opel manta 24
8.33
151 opel manta 26
7.69
191 opel 1900 25
8
************************************************************
Car ID: 58, Name: opel 1900 is the best car for your trip!
************************************************************
Enjoy your trip with the lowest fuel consumption and cost
!!!!!!!
************************************************************

PL/SQL procedure successfully completed.

Potrebbero piacerti anche