亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle 存儲過程教程

2024-08-29 13:56:04
字體:
來源:轉載
供稿:網友
Oracle分頁存儲過程的思路于sqlserver的思路是一樣的,但是我這里做了點改動,在因為Oracle的語法和規則的不同所以,Oracle分頁存儲過程看上去有點不一樣。見笑,見笑!
在Oracle的存儲過程中返回記錄集,需要用到游標變量,Oracle不能像sqlserver那樣可以直接返回一個記錄集。
由于設想在.net中把復雜的sql語句生成,所以在存儲過程中沒有去考慮生成sql語句的問題。
以下是在Oracle中實現的分頁存儲過程。

復制代碼 代碼如下:


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, --產生dataset的sql語句
Psize in number, --頁面大小
Pcount out number, --返回分頁總數
v_cur out type_cur --返回當前頁數據記錄
);
procedure DotNetPageRecordsCount(
Psqlcount in varchar2, --產生dataset的sql語句
Prcount out number --返回記錄總數
);
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
------------------------------------------------------------取分頁總數
v_sql := 'select count(*) from (' || Psql || ')';
execute immediate v_sql into v_count;
Pcount := ceil(v_count/Psize);
------------------------------------------------------------顯示任意頁內容
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; --返回記錄總數
end DotNetPageRecordsCount;
--**************************************************************************************
end DotNot;


以下是在.net中調用Oracle分頁存儲過程的步驟。
在.net調用返回記錄集的存儲過程,需要用到datareader,但是datareader不支持在datagrid中的分頁,因此需要利用datagrid自定義分頁功能。

復制代碼 代碼如下:


rotected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
Dim conn As New OracleClient.OracleConnection()
Dim cmd As New OracleClient.OracleCommand()
Dim dr As OracleClient.OracleDataReader
Private Sub gridbind(ByVal pindex As Integer, ByVal psql As String, Optional ByVal psize As Integer = 10)
conn.ConnectionString = "Password=gzdlgis;User ID=gzdlgis;Data Source=gzgis"
cmd.Connection = conn
cmd.CommandType = CommandType.StoredProcedure
conn.Open()
'------------------------------------------------------------------------------------
cmd.CommandText = "DotNot.DotNetPageRecordsCount"
'------------------------------------------------------------------------------------
cmd.Parameters.Add("psqlcount", OracleType.VarChar).Value = psql
cmd.Parameters.Add("prcount", OracleType.Number).Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()
Me.DataGrid1.AllowPaging = True
Me.DataGrid1.AllowCustomPaging = True
Me.DataGrid1.PageSize = psize
Me.DataGrid1.VirtualItemCount = cmd.Parameters("prcount").Value
cmd.Parameters.Clear()
'------------------------------------------------------------------------------------
cmd.CommandText = "DotNot.DotNetPagination"
'------------------------------------------------------------------------------------
cmd.Parameters.Add("pindex", Data.OracleClient.OracleType.Number).Value = pindex
cmd.Parameters.Add("psql", Data.OracleClient.OracleType.VarChar).Value = psql '"select rownum rn,t.* from cd_ssxl t"
cmd.Parameters.Add("psize", Data.OracleClient.OracleType.Number).Value = psize
cmd.Parameters.Add("v_cur", Data.OracleClient.OracleType.Cursor).Direction = ParameterDirection.Output
cmd.Parameters.Add("pcount", Data.OracleClient.OracleType.Number).Direction = ParameterDirection.Output
dr = cmd.ExecuteReader()
Me.DataGrid1.DataSource = dr
Me.DataGrid1.DataBind()
dr.Close()
conn.Close()
Response.Write("總計頁數 " & cmd.Parameters("pcount").Value)
End Sub
----------------------------------------------------------------------------------------
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
Dim psql As String = "select rownum rn,t.* from cd_ssxl t"
gridbind(0, psql, 20)
End If
End Sub
---------------------------------------------------------------------------------------
Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
Dim psql As String = "select rownum rn,t.* from cd_ssxl t"
Me.DataGrid1.CurrentPageIndex = e.NewPageIndex
gridbind(e.NewPageIndex, psql, 20)
End Sub

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美制服中文字幕| 精品无人区乱码1区2区3区在线| 国产精品www网站| 亚洲第一精品福利| 影音先锋日韩有码| 亚洲精品大尺度| 日韩在线资源网| 琪琪亚洲精品午夜在线| 精品国产一区二区三区久久狼黑人| 亚洲欧美精品中文字幕在线| 色偷偷偷亚洲综合网另类| 国产欧美一区二区三区视频| 秋霞av国产精品一区| 色琪琪综合男人的天堂aⅴ视频| 亚洲综合大片69999| 成人激情av在线| 欧美激情在线狂野欧美精品| 欧美日韩亚洲高清| 91午夜理伦私人影院| 亚洲色图欧美制服丝袜另类第一页| 日本成人激情视频| 亚洲美女免费精品视频在线观看| 91国产视频在线| 日韩中文字幕在线播放| 国产亚洲精品va在线观看| 国产精品盗摄久久久| 日本欧美在线视频| 日韩在线免费观看视频| 亚洲欧美制服中文字幕| 久久久精品2019中文字幕神马| 欧美大片在线看免费观看| 国产精品一区专区欧美日韩| 欧美大荫蒂xxx| 亚洲欧洲第一视频| 亚洲精品一区二区三区婷婷月| 国产精品午夜国产小视频| 亚洲精品日韩在线| 97婷婷大伊香蕉精品视频| 日韩中文字幕网址| 国产欧美精品一区二区三区介绍| 久久伊人免费视频| 欧美激情乱人伦一区| 欧美日韩另类字幕中文| 成人激情视频网| 国产成人免费91av在线| 8x海外华人永久免费日韩内陆视频| 国产精品99免视看9| 国产日韩中文字幕| 久久久免费高清电视剧观看| 国产一区二区三区在线观看视频| 日韩高清电影好看的电视剧电影| www.日韩不卡电影av| 午夜精品久久17c| 岛国av一区二区在线在线观看| 午夜欧美大片免费观看| 国内精品久久久久久中文字幕| 日韩高清a**址| 日韩一区二区在线视频| 九九九热精品免费视频观看网站| 国产精品成久久久久三级| 日韩国产欧美区| 国产欧美 在线欧美| 国产日韩精品一区二区| 91tv亚洲精品香蕉国产一区7ujn| 在线视频免费一区二区| 91精品国产精品| 亚洲男人天堂视频| 清纯唯美亚洲激情| 亚洲欧美日韩在线一区| 国产在线观看精品| 26uuu另类亚洲欧美日本一| 色综合亚洲精品激情狠狠| 欧美激情一区二区三级高清视频| 国产一区视频在线| 97视频在线播放| 亚洲精品午夜精品| 久久香蕉精品香蕉| 国产精品成人久久久久| 三级精品视频久久久久| 久久亚洲精品国产亚洲老地址| 亚洲欧美三级伦理| 91九色综合久久| 国产中文日韩欧美| 国产综合在线视频| 91综合免费在线| 亚洲欧美精品中文字幕在线| 欧美精品久久一区二区| 国产成人一区二区在线| 亚洲精品一区二区久| 亚洲综合在线小说| 亚洲国产精品嫩草影院久久| 国产精品狼人色视频一区| 精品久久久久久久久中文字幕| 成人a级免费视频| 精品国产91久久久| 久久精品亚洲国产| 欧美整片在线观看| 国产精品丝袜久久久久久不卡| 深夜福利国产精品| 国内精品久久久久久中文字幕| 国产精品美女免费| 日韩高清电影免费观看完整版| 日韩精品视频在线观看免费| 欧美最猛黑人xxxx黑人猛叫黄| 欧美日产国产成人免费图片| 国产三级精品网站| 国产va免费精品高清在线观看| 欧美午夜影院在线视频| 欧美中文字幕在线观看| 日韩在线资源网| 91精品久久久久久久久久久久久久| 日韩成人久久久| 91精品国产高清| 亚洲成色999久久网站| 精品自在线视频| 91丝袜美腿美女视频网站| 精品电影在线观看| 成人黄色在线播放| 国产香蕉精品视频一区二区三区| 人妖精品videosex性欧美| 亚洲成人久久久久| 亚洲色图色老头| 韩国精品美女www爽爽爽视频| 亚洲精品二三区| 亚洲欧美色图片| 日韩在线免费av| 欧美国产日韩免费| 国产精品日韩在线播放| 国产热re99久久6国产精品| 欧美孕妇性xx| 亚洲精品电影在线| 欧美成人精品三级在线观看| 亚洲一区美女视频在线观看免费| 欧美黑人巨大精品一区二区| 欧美日韩在线一区| 日产精品久久久一区二区福利| 韩日精品中文字幕| 久久久97精品| 久久综合久中文字幕青草| 国产91ⅴ在线精品免费观看| 亚洲免费成人av电影| 国产精品视频一区二区三区四| 国产欧美日韩精品专区| 久久久久久久爱| 亚洲伊人久久综合| 黄色91在线观看| 午夜精品福利电影| 亚洲一区二区自拍| 中文字幕亚洲天堂| 亚洲综合第一页| 日韩视频免费大全中文字幕| 国产精品99久久久久久www| 超碰97人人做人人爱少妇| 欧美激情久久久| 日韩av网站导航| 中文字幕久久亚洲| 亚洲色图13p| 亚洲va欧美va国产综合剧情| 中文字幕精品视频| 色噜噜狠狠狠综合曰曰曰88av| 国产精品电影久久久久电影网| 欧美日韩中文字幕| 亚洲精品网站在线播放gif| 精品国产91乱高清在线观看|