Solution:
SQL> create table wholesaler0 (wno int primary key,wname varchar(20),addr varchar(20),city varchar(20));
SQL> insert into wholesaler0 values(100,'aaa','ab chowk','pune');
SQL> create table product3 (pno int primary key,pname varchar(20),rate int);
SQL> insert into product3 values(001,'mmm',500);
SQL> create table wp0 (wno int ,pno int);
SQL> insert into wp0 values(100,001);
1)Write a procedure which will display details of products supplied by “Mr. Patil”
SQL> set serveroutput on
SQL> create or replace procedure p1(t in varchar)as cursor c1 is select wname,pname,rate from
2 wholesaler,product,wp where wholesaler.wno=wp.wno and product.pno=wp.pno and wname='patil';
3 c c1%rowtype;
4 begin
5 open c1;
6 dbms_output.put_line('wname'||''||'pname'||''||'rate');
7 loop
8 fetch c1 into c;
9 exit when c1 %notfound;
10 if(c.wname=t)then
11 dbms_output.put_line(c.wname||''||c.pname||''||c.rate);
12 end if;
13 end loop;
14 close c1;
15 end;
16 /
Procedure created.
SQL> begin
2 p1('patil');
3 end;
4 /
wnamepnamerate
patilbooks30
2)Write a cursor which will display wholesaler wise product details.(Use Parameterized cursor)
SQL> set serveroutput on
SQL> declare
2 cursor c2(yyyy wholesaler0.wname %type) is select wname,pname from wholesaler0,product3,wp0 where wholesaler0.wno=wp0.wno and product3.pno=wp0.pno order by wname;
3 c c2 %rowtype;
4 begin
5 open c2('&yyyy');
6 loop
7 fetch c2 into c;
8 exit when c2 %notfound;
9 dbms_output.put_line(c.wname||''||c.pname);
10 end loop;
11 close c2;
12 end;
13 /
Enter value for yyyy: 500
old 5: open c2('&yyyy');
new 5: open c2('500');
aaammm
bbbnnn
cccppp
0 Comments