SQL> create or replace package pack as
2 function s(i number) return number;
3 function b(i1 number) return number;
4 function det(i2 number) return number;
5 end pack;
6 /
Package created.
SQL> create or replace package body pack as
2 function s(i number) return number as
3 a number(10);
4 begin
5 select salary into a from emp14 where empid=i;
6 return (a);
7 end;
8 function b(i1 number) return number as
9 sa number(10);
10 begin
11 update emp14 set salary=salary+salary*0.1 where empid=i1;
12 select salary into sa from emp14 where empid=i1;
13 return (sa);
14 end;
15 function det(i2 number) return number as
16 na varchar(10);
17 id number(10);
18 j varchar(10);
19 s1 number(10);
20 begin
21 select fname into na from emp14 where empid=i2;
22 select empid into id from emp14 where empid=i2;
23 select job into j from emp14 where empid=i2;
24 select salary into s1 from emp14 where empid=i2;
25 dbms_output.put_line('Name: '||na||' Empid: ' || id||' Job: '||j||' salary:'||s1);
26 return(i2);
27 end;
28 end pack;
29 /
Package body created.
SQL> declare
2 n number:=&n;
3 op number:=&op;
4 begin
5 if op=1 then
6 dbms_output.put_line('Salary:' ||pack.s(n));
7 end if;
8 if op=2 then
9 dbms_output.put_line('Bonus: '||pack.b(n));
10 end if;
11 if op=3 then
12 dbms_output.put_line('Details: '||pack.det(n));
13 end if;
14 end;
15 /
Enter value for n: 146
old 2: n number:=&n;
new 2: n number:=146;
Enter value for op: 1
old 3: op number:=&op;
new 3: op number:=1;
PL/SQL procedure successfully completed.
SQL> declare
2 n number:=&n;
3 op number:=&op;
4 begin
5 if op=1 then
6 dbms_output.put_line('Salary:' ||pack.s(n));
7 end if;
8 if op=2 then
9 dbms_output.put_line('Bonus: '||pack.b(n));
10 end if;
11 if op=3 then
12 dbms_output.put_line('Details: '||pack.det(n));
13 end if;
14 end;
15 /
Enter value for n: 146
old 2: n number:=&n;
new 2: n number:=146;
Enter value for op: 1
old 3: op number:=&op;
new 3: op number:=1;
Salary:20000
PL/SQL procedure successfully completed.
SOL>/
Enter value for n: 321
old 2: n number:=&n;
new 2: n number:=321;
Enter value for op: 2
old 3: op number:=&op;
new 3: op number:=2;
Bonus: 35200
PL/SQL procedure successfully completed.
SQL>/
Enter value for n: 143
old 2: n number:=&n;
new 2: n number:=143;
Enter value for op: 3
old 3: op number:=&op;
new 3: op number:=3;
Name: rahul Empid: 143 Job: developer salary: 14000
Details: 143
PL/SQL procedure successfully completed.
No comments:
Post a Comment