0% found this document useful (0 votes)
12 views5 pages

ASSIGNMENT9

Uploaded by

sai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views5 pages

ASSIGNMENT9

Uploaded by

sai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

ASSIGNMENT 9

TASK1
IF in_out is used in the block

1. Before Function Call:


• Actual is 'SET OUT SIDE'.
• Output will be: Outside Function SET OUT SIDE.
2. During Function Call:
• The function in_out changes Actual to some modified value which is not
mentioned in the query .
3. After Function Call:
• Output can be: Outside Function some modified value.

If in used in the block there is a chance of getting an error.

TASK 2
CODE 2.2:
CREATE OR REPLACE PACKAGE Money_overloaded AS

TYPE Rupee IS RECORD (

rupee NUMBER,

paisa NUMBER

);

FUNCTION addRupee(r1 Rupee, r2 Rupee) RETURN Rupee;

FUNCTION addRupee(r1 Rupee, unit NUMBER, paisa BOOLEAN) RETURN Rupee;

PROCEDURE Print(r Rupee);


END Money_overloaded;

CREATE OR REPLACE PACKAGE BODY Money_overloaded AS

FUNCTION addRupee(r1 Rupee, r2 Rupee) RETURN Rupee IS

result Rupee;

BEGIN

result.rupee := r1.rupee + r2.rupee;

result.paisa := r1.paisa + r2.paisa;

IF result.paisa >= 100 THEN

result.rupee := result.rupee + (result.paisa / 100);

result.paisa := MOD(result.paisa, 100);

END IF;

RETURN result;

END addRupee;

FUNCTION addRupee(r1 Rupee, unit NUMBER, paisa BOOLEAN) RETURN Rupee IS

result Rupee;

BEGIN

result.rupee := r1.rupee + unit;

result.paisa := r1.paisa;
IF paisa THEN

result.paisa := result.paisa + unit;

END IF;

IF result.paisa >= 100 THEN

result.rupee := result.rupee + (result.paisa / 100);

result.paisa := MOD(result.paisa, 100);

END IF;

RETURN result;

END addRupee;

PROCEDURE Print(r Rupee) IS

BEGIN

DBMS_OUTPUT.PUT_LINE(r.rupee || ' Rupees, ' || r.paisa || ' paisa');

END Print;

END Money_overloaded;

SET SERVEROUTPUT ON;

DECLARE
r1 Money_overloaded.Rupee;

r2 Money_overloaded.Rupee;

result Money_overloaded.Rupee;

BEGIN

r1.rupee := 10;

r1.paisa := 50;

r2.rupee := 5;

r2.paisa := 75;

result := Money_overloaded.addRupee(r1, r2);

Money_overloaded.Print(result);

result := Money_overloaded.addRupee(r1, 5, TRUE);

Money_overloaded.Print(result);

result := Money_overloaded.addRupee(r1, 5, FALSE);

Money_overloaded.Print(result);

END;

OUTPUT:

You might also like