cursor assignment
cursor assignment
(1 row)
Q)2
^
fybcadb282=> create or replace function cursor2() Returns void as'
Declare
cur2 cursor for select actor.a_name,count(a_name) from actor group by m_name
having a_name > 3;
a_name varchar(20);
m_name varchar(20);
Begin
open cur2;
raise notice ''-----'';
raise notice ''%'';
loop
Fetch cur2 into m_name;
Exit when not found ;
raise notice ''%'',a_name;
end loop;
close cur2;
end;
'Language 'plpgsql';
CREATE FUNCTION
fybcadb282=> CREATE FUNCTION
fybcadb282=> select cursor();
NOTICE: m_name
NOTICE: -------
NOTICE: 1
NOTICE: <NULL>
cursor
--------
(1 row)
Q)3
create or replace function cursor3(u_addres varchar(20)) Returns void as'
Declare
cur3 cursor for select s_name,subject,class from studt,teac,studt_teac where
studt.s_no=studt_teac.s_no and teac.t_no=studt_teac.t_no and s_addre=u_addres;
s_name varchar(20);
class varchar(20);
subject varchar(20);
Begin
open cur3;
raise notice ''s_name,class,subject'';
raise notice ''----'';
loop
Fetch cur3 into s_name,class,subject;
Exit when not found ;
raise notice ''% % %'',s_name;
end loop;
close cur3;
end;
'Language 'plpgsql';
(1 row)
(1 row)
Q)4
create or replace function cursor4 Returns void as'
Declare
cur4cursor for select s_name,class,sum(mark) from studt,teac,studt_teac where
studt.s_no=studt_teac.s_no and teac.t_no=studt_teac.t_no and grop by s_name,class
order by s_name,class;
mark int ;
s_name varchar(20);
class varchar(20);
Begin
open cur4
raise notice ''s_name,class,mark
raise notice ''----'';
loop
Fetch cur4into s_name,class,mark;
Exit when not found ;
raise notice ''% % %'',s_name,class,mark;
end loop;
close cur4
end;
'Language 'plpgsql';
(1 row)
Q)5
create or replace function cursor5() Returns void as'
Declare
cur5 cursor for select tript.*,max(experience)from salsem,tript group by t_no
order by t_no desc limit 1;
s_name varchar(20);
t_no int;
Begin
open cur5;
raise notice ''s_name,t_no'';
raise notice ''----'';
loop
Fetch cur5 into s_name,t_no;
Exit when not found ;
raise notice ''% % %'',s_name;
end loop;
close cur5;
end;
'Language 'plpgsql';
(1 row)
Q)6
create or replace function cur6 () returns void as'
declare
cur6 cursor for select dep_name,count(sno) from salsem,dep where dep.dep_no=salsem
.dep_no group by dep_name;
dep_name varchar(20);
sno int;
cnt int;
rec record;
begin
open cur6;
raise notice ''dep_name sno cnt'';
raise notice '' _________'';
loop
fetch cur6 into rec ;
exit when not found;
raise notice '' % % %'',rec.dep_name,rec.sno,rec.cnt;;
end loop;
close cur6;
end;
'Language 'plpgsql';
fybcadb282=> create or replace function cur6 () returns void as'
declare
cur6 cursor for select dep_name,count(sno) from salsem,dep where dep.dep_no=salsem
.dep_no group by dep_name;
dep_name varchar(20);
cnt int;
rec record;
begin
open cur6;
raise notice ''dep_name cnt'';
raise notice '' _________'';
loop
fetch cur6 into rec ;
exit when not found;
raise notice '' % '',dep_name;
end loop;
close cur6;
end;
'Language 'plpgsql';
CREATE FUNCTION
fybcadb282=> select cur6();
NOTICE: dep_name cnt
NOTICE: _________
NOTICE: <NULL>
NOTICE: <NULL>
NOTICE: <NULL>
cur6
------
or
(1 row)
create or replace function cur6 () returns void as'
declare
cur3 cursor for select count (sno) from salsem;
cnt int;
begin
open cur6;
raise notice '' count'';
raise notice '' _________'';
loop
fetch cur6 into cnt ;
exit when not found;
raise notice '' % '',cnt;
end loop;
close cur6;
end;
'Language 'plpgsql';
fybcadb282=> create or replace function cur6 () returns void as'
declare
cur6 cursor for select count (sno) from salsem;
cnt int;
begin
open cur6;
raise notice '' count'';
raise notice '' _________'';
loop
fetch cur6 into cnt ;
exit when not found;
raise notice '' % '',cnt;
end loop;
close cur6;
end;
'Language 'plpgsql';
CREATE FUNCTION
fybcadb282=> select cur6();
NOTICE: count
NOTICE: _________
NOTICE: 9
cur6
------
(1 row)
Q)7
create or replace function cursor7() Returns void as'
Declare
cur7 cursor for select c_name,s_name from student313,competition313,stu_com313
where student313.sreg_no=stu_com313.sreg_no and competition313.c_no=stu_com313.c_no
and student313.class=''fyba'' and rank=''3'' ;
c_name varchar(20);
s_name varchar(20);
Begin
open cur7;
raise notice ''competition_name student_name '';
raise notice ''_________'';
loop
Fetch cur7 into c_name,s_name;
Exit when not found ;
raise notice ''% %'',c_name,s_name;
end loop;
close cur7;
end;
'Language 'plpgsql';
fybcadb282=> create or replace function cursor7() Returns void as'
fybcadb282'> Declare
fybcadb282'> cur7 cursor for select c_name,s_name from
student313,competition313,stu_com313 where student313.sreg_no=stu_com313.sreg_no
and competition313.c_no=stu_com313.c_no and student313.class=''fyba'' and
rank=''3'' ;
fybcadb282'> c_name varchar(20);
fybcadb282'> s_name varchar(20);
fybcadb282'> Begin
fybcadb282'> open cur7;
fybcadb282'> raise notice ''competition_name student_name '';
fybcadb282'> raise notice ''_________'';
fybcadb282'> loop
fybcadb282'> Fetch cur7 into c_name,s_name;
fybcadb282'> Exit when not found ;
fybcadb282'> raise notice ''% %'',c_name,s_name;
fybcadb282'> end loop;
fybcadb282'> close cur7;
fybcadb282'> end;
fybcadb282'> 'Language 'plpgsql';
CREATE FUNCTION
fybcadb282=> select cursor7();
NOTICE: competition_name student_name
NOTICE: _________
NOTICE: poster malik
cursor7
---------
(1 row)
Q)8
create or replace function cursor8(yy int ) returns void as'
fybcadb282=> create or replace function cursor8(yy int ) returns void as'
declare
cur8 cursor for select c_name,c_type from competition313,stu_com313 where
competition313.c_no=stu_com313.c_no and year=yy;
rec record;
begin
open cur8;
loop
fetch cur8 into rec;
exit when not found;
raise notice ''the names of comp %'',rec.c_name;
end loop;
close cur8;
end;
'language 'plpgsql';
CREATE FUNCTION
fybcadb282=> select cursor8(2004);
NOTICE: the names of comp quiz
cursor8
---------
(1 row)
(1 row)
Q)10
create or replace function cur4 (a_name varchar(20)) returns void as'
Declare
cur10 cursor for select d_o_duty from bus,Driver,bus_driver1 where
bus.bus_id=bus_driver1.bus_id and Driver.dno=bus_driver1.dno and dname=a_name;
dname varcha (20);
d_o_duty date;
begin
open cur10;
raice notice '' the num of buses of date'';
raice notice ''_________________________'';
loop
fetch into cur10 d_o_duty;
exit when not found;
raise notice ''%'',d_o_duty;
end loop;
close cur10;
end ;
'language 'plpgsql';
fybcadb282=> create or replace function cur4 (a_name varchar(20)) returns void as'
Declare
cur10 cursor for select d_o_duty from bus,Driver,bus_driver1 where
bus.bus_id=bus_driver1.bus_id and Driver.dno=bus_driver1.dno and dname=a_name;
dname varchar (20);
d_o_duty date;
begin
open cur10;
raise notice '' the num of buses of date'';
raise notice ''_________________________'';
loop
fetch cur10 into d_o_duty;
exit when not found;
raise notice ''%'',d_o_duty;
end loop;
close cur10;
end ;
'language 'plpgsql';
CREATE FUNCTION
fybcadb282=> select cur4('Zaid');
NOTICE: the num of buses of date
NOTICE: _________________________
NOTICE: 2020-12-12
cur4
------
(1 row)
13)
create or replace function cursor13() Returns void as'
Declare
cur13 cursor for select c_name from student313,competition313,stu_com313 where
student313.sreg_no=stu_com313.sreg_no and competition313.c_no=stu_com313.c_no and
student313.class='fyba' and year='2003' ;
c_name varchar(20);
Begin
open cur13;
raise notice ''competition'';
raise notice ''_________'';
loop
Fetch cur3 into c_name;
Exit when not found ;
raise notice ''% '',c_name;
end loop;
close cur13;
end;
'Language 'plpgsql';
(1 row)
Q)15
create or replace function cursor15(varchar (20),varchar(20)) Returns void as'
Declare
cur15 cursor for select s_name,c_name,rank from
student313,competition313,stu_com313 where student313.sreg_no=stu_com313.sreg_no
and competition313.c_no=stu_com313.c_no;
s_name varchar(20);
c_name varchar(20);
rank int;
rec record;
Begin
open cur15;
raise notice ''s_name c_name rank'';
raise notice ''_________'';
loop
Fetch cur15 into rec;
Exit when not found ;
raise notice ''% % %'',rec.s_name,rec.c_name,rec.rank;
end loop;
close cur15;
end;
'Language 'plpgsql';
(1 row)
(1 row)
fybcadb282=>
Q)16
create or replace function cur16(a_name varchar(20)) returns void as'
Declare
cur16 cursor for select d_o_duty from bus,Driver,bus_driver1 where
bus.bus_id=bus_driver1.bus_id and Driver.dno=bus_driver1.dno and dname=a_name;
dname varchar (20);
d_o_duty date;
begin
open cur16;
raise notice '' the num of buses of date'';
raise notice ''_________________________'';
loop
fetch cur16 into d_o_duty;
exit when not found;
raise notice ''%'',d_o_duty;
end loop;
close cur16;
end ;
'language 'plpgsql';
CREATE FUNCTION
fybcadb282=> create or replace function cur16(a_name varchar(20)) returns void as'
fybcadb282'> Declare
fybcadb282'> cur16 cursor for select d_o_duty from bus,Driver,bus_driver1 where
fybcadb282'> bus.bus_id=bus_driver1.bus_id and Driver.dno=bus_driver1.dno and
dname=a_name;
fybcadb282'> dname varchar (20);
fybcadb282'> d_o_duty date;
fybcadb282'> begin
fybcadb282'> open cur16;
fybcadb282'> raise notice '' the num of buses of date'';
fybcadb282'> raise notice ''_________________________'';
fybcadb282'> loop
fybcadb282'> fetch cur16 into d_o_duty;
fybcadb282'> exit when not found;
fybcadb282'> raise notice ''%'',d_o_duty;
fybcadb282'> end loop;
fybcadb282'> close cur16;
fybcadb282'> end ;
fybcadb282'> 'language 'plpgsql';
CREATE FUNCTION
(1 row)