´øÅÅÐòµÄoracle·ÖÒ³´æ´¢¹ý³Ì
create or replace package Pager
is
type curs is ref cursor;
procedure Pagination
(
inPageSize in integer, --ÿҳ¼Ç¼Êý
inPageIndex in integer, --µ±Ç°Ò³Êý
inTableName in varchar2, --±íÃû
inOrderField in varchar2,--ÅÅÐò×Ö¶Î
inIsOrderBy in varchar2,--ÅÅÐòÀà±ð£¬ÊäÈë' desc' »òÕß' asc'
inWhere in varchar2,--²éѯÌõ¼þ
outRecordCount out int, --×ܼǼÊý
outPageCount out int,
outCursor out curs --Óαê±äÁ¿
);
end;
create or replace package body Pager
is
procedure Pagination
(
inPageSize in integer, --ÿҳ¼Ç¼Êý
inPageIndex in integer, --µ±Ç°Ò³Êý
inTableName in varchar2, --±íÃû
inOrderField in varchar2,--ÅÅÐò×Ö¶Î
inIsOrderBy in varchar2,--ÅÅÐòÀà±ð£¬ÊäÈë' desc' »òÕß' asc'
inWhere in varchar2,--²éѯÌõ¼þ
outRecordCount out int, --×ܼǼÊý
outPageCount out int,
outCursor out curs --Óαê±äÁ¿
)
is
v_sql varchar2(3000); --×ܵÄsqlÓï¾ä
v_sql_count varchar2(3000); --×ܼǼµÄsqlÓï¾ä
v_sql_order varchar2(2000); --ÅÅÐòµÄsqlÓï¾ä
v_count int; -- --×ܼǼÊý
v_endrownum int; --½áÊøÐÐ
v_startrownum int; --¿ªÊ¼ÐÐ
begin
if inOrderField!='NO' then
v_sql_order :=' ORDER BY '|| inOrderField ||' '||inIsOrderBy;
else
v_sql_order :='';
end if;
if inWhere is not null then
v_sql_count:='SELECT COUNT(ROWNUM) from '||inTableName||' where '||inWhere;
else
v_sql_count:='SELECT COUNT(ROWNUM) from '||inTableName;
end if;
execute immediate v_sql_count into v_count;
outRecordCount := v_count;
if mod(v_count,inPageSize)=0 then
outPageCount:= v_count/inPageSize;
else
outPageCount:= v_count/inPageSize+1;
end if;
v_startrownum:= 1+(inPageIndex-1)*inPageSize;
v_endrownum:= inPageIndex*inPageSize;
if inWhere is not null then
v_sql := 'SELECT * fro
Ïà¹ØÎĵµ£º
Oracle¶Ô±í×öÈ«±íɨÃèµÄʱºò
£¬»áɨÃèÍêHWMÒÔÏÂ
µÄÊý¾Ý¿é¡£Èç¹ûij¸ö±ídelete(delete²Ù×÷²»»á½µµÍ¸ßˮλ)ÁË´óÁ¿Êý¾Ý£¬ÄÇôÕâʱ¶Ô±í×öÈ«±íɨÃè¾Í»á×öºÜ¶àÎÞÓù¦£¬É¨ÃèÁËÒ»´ó¶ÑÊý¾Ý¿é£¬×îºó·¢ÏÖ¿éÀïÃæ¾ÓȻûÓÐÊý¾Ý¡£
ͨ³££¬ÔÚ¶Ô±í×öÁË´óÅúÁ¿delete²Ù×÷Ö®ºó£¬¾ÍÓ¦¸ÃÂíÉϽµµÍ±íµÄ¸ßˮ룬¿ÉÒÔʹÓÃshrink ÃüÁî»òÕßalter&n ......
ÔÚoracleÖУ¬ÎÒÃÇ´´½¨Ò»¸öÖ÷¼ü£¬Ôòͬʱ×Ô¶¯´´½¨ÁËÒ»¸öͬÃûµÄΨһË÷Òý£»É¾³ýÖ÷¼ü£¬ÔòÖ÷¼üÔ¼ÊøºÍ¶ÔÓ¦µÄΨһË÷Òý¶¼É¾³ýÁË¡£ÕâÊÇÎÒÃǾ³£¼ûµ½µÄÏÖÏó¡£
·¢³öÒ»¸ö´´½¨Ö÷¼üµÄsql£¬oracleÆäʵִÐÐÁËÁ½²½£º´´½¨Ö÷¼üÔ¼Êø¡¢´´½¨/¹ØÁª ΨһË÷Òý¡£²½ÖèÊÇÕâÑùµÄ£º
´´½¨Ö÷¼üÔ¼ÊøÊ±£¬¼ì²é¸ÃÖ÷¼ü×Ö¶ÎÉÏÊÇ·ñÒѾ´æÔÚΨһË÷Òý¡£Èô² ......
1£¬segments µÄ·ÖÀà
l
Êý¾Ý¶Î
l
Ë÷Òý¶Î
l
ÁÙʱ¶Î
l
»ØÍË ......
drop table tmp_lzw_3283_tar;
create table tmp_lzw_3283_tar
(
servnumber varchar2(11)
)
;
load data
infile 'tar_3283.txt'
insert into table tmp_lzw_3283_tar
fields terminated by '|'
(
servnumber
)
/*
select count(*),count(distinct servnumber) from tmp_lzw_3283_ta ......
OracleÉ󼯹¦ÄÜ
Ò»¡¢ É󼯷ÖÀࣺ
OracleÖÐÉó¼Æ×ÜÌåÉϿɷÖΪ“±ê×¼É󼯔ºÍ“ϸÁ£¶ÈÉ󼯔ºóÕßÒ²³ÆÎª“»ùÓÚÕþ²ßµÄÉ󼯔£¬ÔÚOracle10GÖ®ºó¹¦Äܵõ½ºÜ´óÔöÇ¿¡£ÆäÖбê×¼Éó¼Æ¿É·ÖΪÓû§¼¶Éó¼ÆºÍϵͳ¼¶É󼯡£Óû§¼¶Éó¼ÆÊÇÈκÎOracleÓû§¿ÉÉèÖõÄÉ󼯣¬Ö÷ÒªÊÇÓû§Õë¶Ô×Ô¼º´´½¨ ......