ASP + ORACLE 存储过程 返回结果集

此博客展示了使用ASP和VBScript连接Oracle数据库的代码,包含连接、断开连接及输出结果的函数。还给出了SQL脚本,包括创建包和包体,用于从表中查询数据,体现了ASP与Oracle数据库交互的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

None.gif<%@Language="VBSCRIPT" CodePage="936" LCID="2052"%>
None.gif
<%Option Explicit%>
None.gif
<%
None.gif
'**********************************************
None.gif'
                     Coding By sjcatsoft                      |
None.gif'
               Please Keep the message,Thx            |
None.gif'
**********************************************
None.gif
%>
None.gif
<!-- #include file="../adovbs.inc" -->
None.gif
None.gif
<%
None.gif    
Dim cnOra
None.gif
None.gif    
Function Connect2OracleServer
None.gif        
Dim conStr
None.gif        conStr 
= "Provider=MSDAORA.Oracle;Data Source=xx;user id=sr;password=bjlt"
None.gif        
Set cnOra = Server.CreateObject("ADODB.Connection")
None.gif        cnOra.CursorLocation 
= adUseClient '=3
None.gif
        On Error Resume Next
None.gif        cnOra.Open conStr
None.gif        Connect2OracleServer 
= (Err.Number = 0)
None.gif    
End Function
None.gif
None.gif    
Sub DisconnectFromOracleServer
None.gif        
If Not cnOra is Nothing Then
None.gif            
If cnOra.State = 1 Then
None.gif                cnOra.Close
None.gif            
End If
None.gif            
Set cnOra = Nothing
None.gif        
End If
None.gif        
None.gif    
End Sub
None.gif    
None.gif    
None.gif    
Sub Echo(str)
None.gif        Response.Write(str)
None.gif    
End Sub
None.gif    
None.gif    
Sub OutputResult
None.gif        
Dim cmdOra
None.gif        
Dim rs
None.gif        
Set cmdOra = Server.CreateObject("ADODB.Command")
None.gif        
With cmdOra
None.gif            .CommandType 
= adCmdText  '=1
None.gif
            .CommandText = "{call PKG_TEST.GetItem(?,?)}"
None.gif            .Parameters.Append cmdOra.CreateParameter(
"p1", adNumeric, adParamInput, 101)
None.gif            .Parameters.Append cmdOra.CreateParameter(
"p2", adVarChar, adParamInput,  10"xx")
None.gif            .ActiveConnection 
= cnOra
None.gif            
Set rs = cmdOra.Execute
None.gif            
If Not rs.Eof Then
None.gif                
While Not rs.Eof
None.gif                    Echo rs(
0)
None.gif                    Echo 
"--"
None.gif                    Echo rs(
1)
None.gif                    Echo 
"<br>"
None.gif                    rs.MoveNext
None.gif                
Wend
None.gif                rs.Close
None.gif            
End If
None.gif            
Set rs = Nothing
None.gif            
Set cmdOra = Nothing
None.gif        
End With    
None.gif        DisconnectFromOracleServer
None.gif    
End Sub
None.gif    
None.gif
None.gif    
If Connect2OracleServer Then
None.gif        OutputResult
None.gif    
Else
None.gif        Response.Write(Err.Description)
None.gif    
End If
None.gif    
None.gif%
>
None.gif
None.gif
<%
None.gif
'--------------------------------------SQL Script---------------------------------- 
None.gif
    '建包
None.gif'
-----------------------------------
None.gif'
    Create Or Replace Package       PKG_TEST 
None.gif'
      IS
None.gif'
       TYPE rfcTest IS REF CURSOR  ;
None.gif'
None.gif'
       PROCEDURE GETITEM
None.gif'
         ( p1 IN NUMBER, 
None.gif'
           p2 IN VARCHAR2,
None.gif'
           p3 OUT rfcTest
None.gif'
          );
None.gif'
     
None.gif'
None.gif'
    END; -- Package Specification PKG_TEST
None.gif

None.gif
'=============================================
None.gif

None.gif    
'建包体
None.gif'
-----------------------------------
None.gif'
    Create Or Replace Package Body       PKG_TEST 
None.gif'
    IS
None.gif'
None.gif'
       PROCEDURE GETITEM
None.gif'
        ( p1 IN NUMBER, 
None.gif'
          p2 IN VARCHAR2,
None.gif'
          p3 OUT rfcTest
None.gif'
         )
None.gif'
        IS
None.gif'
       BEGIN 
None.gif'
           OPEN p3 FOR
None.gif'
           SELECT * FROM tablename WHERE id = p1 AND name=p2 AND rownum < 10 ;
None.gif'
       EXCEPTION
None.gif'
          WHEN OTHERS THEN
None.gif'
              NULL ;
None.gif'
       END;
None.gif'
None.gif'
    END; -- Package Body PKG_TEST
None.gif
%>
None.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值