Oracle 存儲過程教程建站知識
導讀:1建站知識一個簡單的oracle分頁存儲過程的實現(xiàn)和調(diào)用。在看了眾多的分頁存儲過程以后發(fā)現(xiàn)都是針對sqlserver的,而沒有oracle的網(wǎng)站seo優(yōu)化培訓網(wǎng)seo優(yōu)化趨勢。
Oracle分頁存儲過程的思路于sqlserver的思路是一樣的,但是我這里做了點改動,在因為Oracle的語法和規(guī)則的不同所以,Oracle分頁營銷型網(wǎng)站建設(shè)存儲過程看上去有點不一樣。見笑,見笑! 在Oracle的存儲過程中返回記錄集,需要用到游標變量,Oracle不能像sqlserver那樣可以直接返回一個記錄集。 由于設(shè)想在.net中把復雜的sql語句生成,所以在存儲過程中沒有去考慮生成sql語句的問題。 以下是在Oracle中實現(xiàn)的分頁存儲過程。
復制代碼 代碼如下:
create or replace package DotNet is -- Author : good_hy -- Created : 2004-12-13 13:30:30 -- Purpose : TYPE type_cur IS REF CURSOR; --定義游標變量用于返回記錄集 PROCEDURE DotNetPagination( Pindex in number, --分頁索引 Psql in varchar2, --產(chǎn)生dataset的sql語句 Psize in number, --頁面大小 Pcount out number, --返回分頁總數(shù) v_cur out type_cur --返回當前頁數(shù)據(jù)記錄 ); procedure DotNetPageRecordsCount( Psqlcount in varchar2, --產(chǎn)生dataset的sql語句 Prcount out number --返回記錄總數(shù) ); end DotNot; create or replace package body DotNet is --*************************************************************************************** PROCEDURE DotNetPagination( Pindex in number, Psql in varchar2, Psize in number, Pcount out number, v_cur out type_cur ) AS v_sql VARCHAR2(1000); v_count number; v_Plow number; v_Phei number; Begin ------------------------------------------------------------取分頁總數(shù) v_sql := 'select count(*) from (' || Psql || ')'; execute immediate v_sql into v_count; Pcount := ceil(v_count/Psize); ------------------------------------------------------------顯示任意頁內(nèi)容 v_Phei := Pindex * Psize + Psize; v_Plow := v_Phei - Psize + 1; --Psql := 'select rownum rn,t.* from cd_ssxl t' ; --要求必須包含rownum字段 v_sql := 'select * from (' || Psql || ') where rn between ' || v_Plow || ' and ' || v_Phei ; open v_cur for v_sql; End DotNetPagination; --************************************************************************************** procedure DotNetPageRecordsCount( Psqlcount in varchar2, Prcount out number ) as v_sql varchar2(1000); v_prcount number; begin v_sql := 'select count(*) from (' || Psqlcount || ')'; execute immediate v_sql into v_prcount; Prcount := v_prcount; --返回記錄總數(shù) end DotNetPageRecordsCount; --************************************************************************************** end DotNot;
以下是在.net中調(diào)用Oracle分頁存儲過程的步驟。 在.net調(diào)用返回記錄集的存儲過程,需要用到datareader,但是datareader不支持在datagrid中的分頁,因此需要利用datagrid自定義分頁功能。復制代碼 代碼如下:
聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-23 ,文章Oracle 存儲過程教程建站知識主要講述存儲過程,標簽,Oracle 存儲過程教程建站知識1網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請保留鏈接: http://www.bifwcx.com/article/web_5849.html