国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

Asp Oracle存儲過程返回結果集的代碼

2024-05-04 11:09:09
字體:
來源:轉載
供稿:網友
對于 Oracle 這個龐然大物,Asp使用起來,確實是捉襟見肘的 。 尤其是要返回結果集(Recordset)的情況,更是讓很多人犯難。
 
 
 
經過摸索和實踐,我把自己的解決方法,寫在下面: 
說明: 
我的Oracle客戶端的版本是 oracle 9i, 安裝client端的時候,不能用默認安裝,一定要自定義, 然后選擇所有 OLEDB 相關的內容,都裝上,否則到下面的 Provider 的時候,會找不到。 
復制代碼代碼如下:

<%@Language="VBSCRIPT" CodePage="936" LCID="2052"%> 
<%Option Explicit%> 
<!-- #include file="../adovbs.inc" --> 
<% 
Dim cnOra 
Function Connect2OracleServer 
Dim conStr 
conStr = "Provider=MSDAORA.Oracle;Data Source=xx;User Id=?;Password=?" 
Set cnOra = Server.CreateObject("ADODB.Connection") 
cnOra.CursorLocation = adUseClient '=3 
On Error Resume Next 
cnOra.Open conStr 
Connect2OracleServer = (Err.Number = 0) 
End Function 
Sub DisconnectFromOracleServer 
If Not cnOra is Nothing Then 
If cnOra.State = 1 Then 
cnOra.Close 
End If 
Set cnOra = Nothing 
End If 
End Sub 
Sub Echo(str) 
Response.Write(str) 
End Sub 
Sub OutputResult 
Dim cmdOra 
Dim rs 
Set cmdOra = Server.CreateObject("ADODB.Command") 
With cmdOra 
.CommandType = adCmdText '=1 
.CommandText = "{call PKG_TEST.GetItem(?,?)}" 
.Parameters.Append cmdOra.CreateParameter("p1", adNumeric, adParamInput, 10, 1) 
.Parameters.Append cmdOra.CreateParameter("p2", adVarChar, adParamInput, 10, "xx") 
.ActiveConnection = cnOra 
Set rs = cmdOra.Execute 
If Not rs.Eof Then 
While Not rs.Eof 
Echo rs(0) 
Echo "--" 
Echo rs(1) 
Echo "<br>" 
rs.MoveNext 
Wend 
rs.Close 
End If 
Set rs = Nothing 
Set cmdOra = Nothing 
End With 
DisconnectFromOracleServer 
End Sub 
If Connect2OracleServer Then 
OutputResult 
Else 
Response.Write(Err.Description) 
End If 
%>

下面是 Oracle 的 sql 腳本 
--------------------------------------SQL Script---------------------------------- 
--建包----------------------------------- 
復制代碼代碼如下:

Create Or Replace Package PKG_TEST 
IS 
TYPE rfcTest IS REF CURSOR ; 
PROCEDURE GETITEM 
( p1 IN NUMBER, 
p2 IN VARCHAR2, 
p3 OUT rfcTest 
); 
END; -- Package Specification PKG_TEST 
--------------------------------------------------- 
--建包體----------------------------------- 
Create Or Replace Package Body PKG_TEST 
IS 
PROCEDURE GETITEM 
( p1 IN NUMBER, 
p2 IN VARCHAR2, 
p3 OUT rfcTest 

IS 
BEGIN 
OPEN p3 FOR 
SELECT * FROM tablename WHERE id = p1 AND name=p2 AND rownum < 10 ; 
EXCEPTION 
WHEN OTHERS THEN 
NULL ; 
END; 
END; -- Package Body PKG_TEST

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西平县| 临武县| 什邡市| 沭阳县| 道孚县| 六盘水市| 英超| 巴林右旗| 宜黄县| 长沙市| 临江市| 大英县| 额济纳旗| 泰和县| 环江| 吐鲁番市| 十堰市| 乳山市| 万载县| 长岛县| 丰城市| 巴楚县| 高州市| 万安县| 陕西省| 瑞丽市| 云霄县| 桑日县| 长治县| 内黄县| 陇西县| 新泰市| 洛浦县| 黑河市| 土默特左旗| 右玉县| 河西区| 剑河县| 探索| 赤城县| 商水县|