ORA 01000案例分析,游標超限

2021-08-14 03:18:32 字數 1824 閱讀 4534

最近做櫃檯開發,自己通過c++ ocilib執行 oracle資料庫的儲存過程,獲取分頁表資訊,儲存過程如下:

create or replace procedure p_rm_paging_query

(p_pagesql   in varchar2,     --sql

p_curpage     in out number ,  --當前頁

p_pagesize    in out number ,  --每頁顯示記錄的條數

p_totalrecords out number,    --總記錄數

p_totalpages out number  ,    -- 總頁數 

pageresultset                 out  sys_refcursor              -- 輸出結果集游標)as

v_sql       varchar2(2000):='';  --sql語句

v_startrecord number;         --開始顯示的記錄數

v_endrecord   number;         --結束顯示的記錄條數

begin

--記錄總記錄條數       

v_sql:='select count(*) from (' || p_pagesql || ')';

execute immediate v_sql into p_totalrecords;

if mod(p_totalrecords,p_pagesize)=0 then

--得到整數則直接取得到的頁碼數否在原來的基礎上增加乙個頁碼

p_totalpages:=p_totalrecords/p_pagesize;

else

p_totalpages:=p_totalrecords/p_pagesize+1;

end if;

--驗證頁號

if p_curpage<1 then

p_curpage:=1;

end if;

--如果取的當前頁大於總頁數則取最大頁數的資料

if p_curpage>p_totalpages then

p_curpage:=p_totalpages;

end if;

--實現分頁查詢

v_startrecord :=(p_curpage - 1) * p_pagesize + 1;

v_endrecord   :=p_curpage * p_pagesize;

v_sql           := 'select * from (select t.*, rownum rn from (' || p_pagesql || ') t where rownum<=' || v_endrecord || ' ) where rn>=' ||v_startrecord;

p_totalpages:=floor(p_totalpages);  --去整數總頁

open pageresultset for v_sql;

exception

when others then

close pageresultset;

end p_rm_paging_query;

兩個引數不傳入則會出現異常丟擲。

發現如果在oracle 11g下面執行如上儲存過程,如果執行過程中如果丟擲異常,如果不執行紅色部分,就可能導致游標洩漏。但是在oracle 10g下其實並無此問題。

當 p_curpage     in out number ,  --當前頁

p_pagesize    in out number ,  --每頁顯示記錄的條數

關於「ORA 01000 超出開啟游標的最大數」

當我們需要查詢資料庫,並且返回的結果集有多條記錄時,如何一條條的定位讀取記錄呢?這時候就需要游標了。oracle中所謂的游標,用來標記當前所指向的位置,預設是在第一條記錄之前,rs.next,就下移一位,一直到最後一條記錄之後。資料庫的連線一般都會占用一定的資源,如何保證連線的速度以及系統的效率,實...

10案例分析

銀行 信用風險,即客戶違約風險,是銀行風險管控的主要內容。不同行業,不同企業,財務指標的風險程度不同。假資料,假資訊,假報表的現象,財務資訊的質量問題有三個方面是非常重要的 1.建立識別假報表的管理體系 2.研究建立財務資訊的勾稽關係,即通過相互之間的購機關係的檢驗來判別資料的質量 3.建立資料的錄...

3 20210405 1 案例分析作業

這個作業屬於哪個課程 軟工 2018級計算機二班 這個作業要求在 3 20210405 1 案例分析作業 這個作業的目標 學會對產品的調研和分析 學號20188434 目錄第二部分 分析 參考8.6節對工作的估計,和14.1節軟體工程的質量 第三部分 建議和規劃 參考 構建之法 第8章功能的定位和優...