oradatabase.dbexecutesql("begin totledeptsalary(:inputvalue,:outputbalue,outputvalue2)end;")

解决方案 »

  1.   

    ASP调用代码:
    <% '连接数据库
    set OraSession=CreateObject("OracleInProcServer.XOraSession")
    set OraDatabase=OraSession.DbOpenDatabase("mydb","bookshop/1234",0)
            OraDatabase.Parameters.Add "num1",10,1
    OraDatabase.Parameters("num1").ServerType=2
    OraDatabase.Parameters.Add "num2",10,1
    OraDatabase.Parameters("num2").ServerType=2
    OraDatabase.Parameters.Add "result",0,2
    OraDatabase.Parameters("result").ServerType=2
            OraDatabase.DbExecuteSQL("Begin :result:=ADD1(:num1,:num2);end;")
            response.Write(OraDatabase.Parameters("result").value)
    %>
      

  2.   

    http://www.pep.com.cn/200212/ca3007.htm
      

  3.   

    创建包:
    create or replace package ceshiname is  
      -- Created : 2004-4-19 11:13:19   
     
      type mytype is ref cursor;
      
       -- Public function and procedure declarations
      procedure getname(r_cursor OUT mytype);
    end ceshiname;create or replace package body ceshiname is  -- Function and procedure implementations
      procedure getname(r_cursor out mytype) is
        strsql varchar2(500);
      begin
        strsql:='select ceshi.name from ceshi';    
        OPEN r_cursor FOR strsql;     
      end;
    end ceshiname;在asp中调用:
    Set Conn=Server.CreateObject("ADODB.Connection")
    Set CMD=Server.CreateObject("ADODB.Command") 
    Set rs = Server.CreateObject("ADODB.Recordset")   
       
    connstr="Dsn=sdit;UID=sa;PWD=sa;Server=svr"
          
    conn.Open connstr
       
    CMD.ActiveConnection = conn
    CMD.CommandType = 1
    CMD.CommandTimeout = 0
    CMD.Prepared = trueCMD.CommandText = "{call ceshiname.getname()}"  
       
    set rs.Source = CMD
    set rs = CMD.Execute   
    rs.Open()
    Do While not rs.eof
    Response.write(rs.Fields(0).value & ";")
    rs.movenext
    loop
    rs.close
    set rs=nothing