久久99热66热这里只有精品,特黄特色的大片在线观看,亚洲日本三级在线观看,国产三级农村妇女在线,亚洲av毛片免费在线观看,哺乳叫自慰在线看,天天干美女av网

pl/sql過(guò)程分頁(yè)顯示小案例 -電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【m.dameics.com - 電腦資料】

    pl/sql過(guò)程分頁(yè)顯示小案例

    編寫一個(gè)過(guò)程,要求可以輸入表名,輸入每頁(yè)顯示的記錄數(shù),輸入當(dāng)前頁(yè),返回總記錄數(shù),總頁(yè)數(shù),和返回的結(jié)果集

    --------------------------------------------------------------------- 

    SQL>create or replace package testPackage as type test_cursor(游標(biāo)名) is ref cursor(游標(biāo))

    end testPackage

    SQL>create procedure p8(table_name in varchar2,--表名

    pageSize in number,           --當(dāng)前顯示的記錄數(shù)

    pageNow in number,--當(dāng)前頁(yè)

    --下面都是要返回的內(nèi)容,其值在過(guò)程處理中賦予

    myrows out number,            --總記錄數(shù)

    myPageCount out number,         --總頁(yè)數(shù)

    p_cursor out testPackage.test_cursor   --返回的結(jié)果集

    ) is

    --定義sql語(yǔ)句

    v_sql varchar2(1000);

    v_begin number := (pageNow - 1)*pageSize + 1; -- 每頁(yè)顯示的最少數(shù)

    v_end number := pageNow * pageSize;     --每頁(yè)顯示的最大數(shù) 

    bgein

    v_sql := 'select * rownum from (SQL>select a1.*,rownum rn from (select name,sal from '||table_name||')

    a1 where rownum<='||v_end||') where rownum>'||v_begin||'';

    open p_cursor for v_sql;                --打開一個(gè)游標(biāo),將游標(biāo)和sql語(yǔ)句關(guān)聯(lián)起來(lái)

    v_sql : = 'select count(*) from '||table_name'';   --計(jì)算myrows和myPageCount

    execute immediate v_sql into myrows ;         --執(zhí)行sql,并把返回值賦給myrows來(lái)記錄總記錄數(shù)

    if mod(myrows,pageSize)= 0 then           --計(jì)算總頁(yè)數(shù),注意思路,很好理解

    myPageCount := myrows/Pagesiez;

    else

    myPageCount := myrows/Pagesiez + 1;

    end if

    close p_cursor;                    --關(guān)閉游標(biāo) 

    end;

    /

    ------------------------------------------------------------------------------------------------------

    Class.forName("oracle.jdbc.driver.OracleDriver");

    Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:

    CallableStatement cs = ct.prepareCall("{call p8(?,?,?,?,?,?)}");

    //給?賦值

    cs.setString(1,"myTable");

    sc.setInt(2,5);

    sc.setInt(3,1);

    //給out參數(shù)?賦值

    cs.registOutPrameter(4,oracle.jdbc.OracleTypes.INTEGER);//這側(cè)記錄總數(shù)

    cs.registOutPrameter(5,oracle.jdbc.OracleTypes.INTEGER);//注冊(cè)總頁(yè)數(shù)

    cs.registOutPrameter(6,oracle.jdbc.OracleTypes.CURSOR);//注冊(cè)返回的結(jié)果集

   

    //執(zhí)行

    cs.execute();

    //得到結(jié)果集

    ResultSet rs = (ResultSet) cs.getObject(6);

    //取出總記錄數(shù)

    int rowNum = cs.getInt(4);

    //返回總頁(yè)數(shù)

    int pagecount = cs.getInt(5);

    while(rs.next()){

    System.out.println(rs.getInt(1) + "--" + rs.getString(2));

    }

    //關(guān)閉相關(guān)資源,此處略寫

    作者 chunqiuwei

最新文章