国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会昌县| 临西县| 集贤县| 互助| 肃北| 方城县| 新蔡县| 山阳县| 昂仁县| 余干县| 定日县| 顺昌县| 江油市| 兴安盟| 攀枝花市| 温宿县| 依安县| 宁德市| 鹤峰县| 习水县| 平邑县| 沛县| 房山区| 岑巩县| 娄底市| 丹阳市| 调兵山市| 筠连县| 江永县| 阳山县| 陆川县| 贵州省| 兖州市| 桃园县| 岱山县| 大安市| 新干县| 华宁县| 昭觉县| 娱乐| 泗洪县|