create or replace PROCEDURE UP_GETSITEOWNERINFO
(
p_inStartRowIndex in number, p_inEndRowIndex in number,
p_vchSiteCode in VARCHAR2 :=null,
p_vchOwnerName in VARCHAR2 :=null,
p_vchCnic in VARCHAR2 :=null,
p_inSortExp in varchar2, p_outTotalRows out number,
p_cursor OUT sys_refcursor
)
AS
BEGIN
select count(*) into p_outTotalRows from SITE
inner join SITE_OWNERS on SITE_OWNERS.vchsitecode= SITE.VCHSITECODE
inner join OWNER on OWNER.INTOWNERID= Site_Owners.intownerid
where (p_vchSiteCode is null or SITE.vchsitecode like p_vchSiteCode)
and (p_vchcnic is null or vchcnic like p_vchcnic)
and (p_vchownername is null or
vchfirstname like p_vchownername);
open p_cursor for select * from
(select SITE.vchsitecode,SITE.vchcity,SITE.vchdistrict,SITE.dtmdatecreated
, OWNER.vchfirstname as OwnerName
, OWNER.vchcnic
, ROW_NUMBER()
OVER
(ORDER BY
Decode(p_inSortExp,'VCHSITECODED Ascending',SITE.vchsitecode) ASC,
Decode(p_inSortExp,'VCHSITECODE Descending',SITE.vchsitecode) DESC,
Decode(p_inSortExp,'OWNERNAME Ascending',OWNER.vchfirstname) ASC,
Decode(p_inSortExp,'OWNERNAME Descending',OWNER.vchfirstname) DESC,
Decode(p_inSortExp,'VCHCNIC Ascending',OWNER.vchcnic) ASC,
Decode(p_inSortExp,'VCHCNIC Descending',OWNER.vchcnic) DESC,
SITE.vchsitecode)
R from SITE
inner join SITE_OWNERS on SITE_OWNERS.vchsitecode= SITE.VCHSITECODE
inner join OWNER on OWNER.INTOWNERID= Site_Owners.intownerid
where (p_vchSiteCode is null or SITE.vchsitecode like p_vchSiteCode)
and (p_vchcnic is null or vchcnic like p_vchcnic)
and (p_vchownername is null or
vchfirstname like p_vchownername)
)
WHERE R BETWEEN ((p_inStartRowIndex - 1) * p_inEndRowIndex + 1) and (p_inStartRowIndex * p_inEndRowIndex) ;
END UP_GETSITEOWNERINFO;