日期:2014-05-17  浏览次数:20793 次

这样得排序条件为什么不行呢?我都快要疯了!
我的存储过程如下:

CREATE   OR   REPLACE     PACKAGE   PageTest
is
    type   T_CURSOR   is   ref   cursor;
    Procedure   Per_QuickPage
    (
            p_PageSize   in   number,                     --每页记录数
            p_PageNo   in   number,                         --当前页码,从   1   开始
            p_TableName   in   varchar2,               --表名
            p_SqlSelect   in   varchar2,               --查询语句,含排序部分
            p_order     in   varchar,                       --含排序部分
            p_OutRecordCount   out   number,       --返回总记录数
            p_OutCursor   out   T_CURSOR

    );
end   PageTest;


create   or   replace   package   body   PageTest
is
procedure   Per_QuickPage
(
            p_PageSize   in   number,               --每页记录数
            p_PageNo   in   number,                   --当前页码,从   1   开始
            p_TableName   in   varchar2,         --表名
            p_SqlSelect   in   varchar2,         --查询语句,
            p_order     in   varchar,                       --含排序部分
            p_OutRecordCount   out   number,--返回总记录数
            p_OutCursor   out   T_CURSOR
)
as
        v_sql   varchar2(3000);
        v_count   int;
        v_heiRownum   int;
        v_lowRownum   int;
begin
    ----取记录总数
    if   p_SqlSelect   is   not   null   then  
          v_sql   := 'select   count(*)     from   '||   p_TableName   || '     '||   p_SqlSelect   || '     '||   p_order     ;
    else
          v_sql   := 'select   count(*)     from   '||   p_TableName|| '     '||   p_order   ;
    end   if   ;
    execute   immediate   v_sql   into   v_count;
    p_OutRecordCount   :=   v_count;
    ----执行分页查询
    v_heiRownum   :=   p_PageNo   *   p_PageSize;
    v_lowRownum   :=   v_heiRownum   -   p_PageSize   +   1;