用asp调用oracle存储过程:  
 
---------------------------------------------------------------    
set    conn    =    ...      
set    rs    =    Server.CreateObject(    ADODB.RecordSet    )      
Set    cmd    =    Server.CreateObject(    ADODB.Command    )          
cmd.ActiveConnection    =    conn          
cmd.CommandType    =    adCmdStoredProc      
cmd.CommandText    =    procedureName      
cmd.Parameters.Append    CMD.CreateParameter(VarName,Type,I/O,Size,VarValue)    '输入变量    0    or    n      
cmd.Parameters.Append    CMD.CreateParameter(VarName,Type,I/O)    '输出变量    0    or    n      
set    rs=    cmd.execute()    
---------------------------------------------------------------    
无法取得返回参数?系统总是提示  
OraOLED  错误‘80040e14’  
ORA-06550:第一行,第7列  PLS-00306,参数类型错误  
 
有哪位高手  对asp和oracle编程熟悉的  请指点一下啊!  
QQ:65189666

解决方案 »

  1.   

    我写了一个接口程序,通过asp调用用 Oracle 存储过程,将Access里面的数据,写入到oracle数据库里面。总是提示参数错误,或者数据类型不正确,可能是时间类型 数据错误。
       有哪位高手知道 Access 数据库 里面的时间类型数据 向 oracle数据库写入时应该注意的问题啊!源程序如下:
    <!-- #include file="ADOVBS.inc" --> 导出开始:
     
    <br>
    连接ACCESS据库 信息:
    <!--#include file="Conn_source.asp" --><br>
    连接Oracle据库 信息:
    <!--#include file="Conn_object.asp" --><%
    Dim ToSn
    ToSn = "01155618679422551916237812111578" '加密序列号Dim ToZt
    ToZt = "1" Dim cmd
    Dim getres '导入返回值
    Dim geterr '具体错误信息'---------  从 源 ACCESS数据库 读取数据:Sdate,Edate为表单投递的起止时间sqls = "select * from Examinee where Ldate between #"& Sdate &"# and #"& Edate &"#"
    rs1.open sqls,conn1,1,1
    do while not rs1.eof Dim MaxScore '考试分数
    MaxScore = split(rs1("score"),";")       '从一组考试分数里面取得最大值

    if MaxScore(0) >= 90 then '考试成绩超过90才导入oralce数据库!

    '------- 调用Oracle存储过程开始:向 目标ORACLE数据库 写入 Dim Todate
    Todate = rs1("Examdate")&" 10:00:00" '把Access里面的 Examdate 短日期字段,转换成长日期型 !!!! Set cmd  =  Server.CreateObject("ADODB.Command")
    cmd.ActiveConnection   = conn2  

    cmd.CommandType   = adCmdStoredProc
    cmd.CommandText   = "drv_interface.write_km1" '调用oralce的存储过程!

    Dim lsh,sfzmhm,Kscx,Ksrq,Kscj,Kscs,ksy1,ksy2,ZT,sn '存储过程内定义的 输入参数,下面有类型说明
    Dim res,err '存储过程内定义的 输出参数,下面有类型说明

    CMD.Parameters.Append CMD.CreateParameter("Lsh",adVarchar, adParamInput,30,rs1("No")) '考试编号:String
    CMD.Parameters.Append CMD.CreateParameter("sfzmhm",adVarchar, adParamInput,30,rs1("IDnumber")) '身份证号:String
    CMD.Parameters.Append CMD.CreateParameter("Kscx",adVarchar, adParamInput,30,rs1("LType")) '考试车型:String
    CMD.Parameters.Append CMD.CreateParameter("Ksrq",addate, adParamInput ,Todate) '考试日期:Datetime (精确到秒,不可空)
    CMD.Parameters.Append CMD.CreateParameter("Kscj",adInteger, adParamInput,MaxScore(0)) '考试成绩:integer (介于0和100,不可空)
    CMD.Parameters.Append CMD.CreateParameter("Kscs",adInteger, adParamInput,rs1("times")) '考试次数:integer (介于0和99,不可空)
    CMD.Parameters.Append CMD.CreateParameter("ksy1",adVarchar, adParamInput,30,ToKsy1) '考试员1:String
    CMD.Parameters.Append CMD.CreateParameter("ksy2",adVarchar, adParamInput,30,ToKsy2) '考试员2:String
    CMD.Parameters.Append CMD.CreateParameter("ZT",adVarchar, adParamInput,1,ToZt) '状态位:String
    CMD.Parameters.Append CMD.CreateParameter("sn",adVarchar, adParamInput,40,ToSN) '序列号:String
    CMD.Parameters.Append CMD.CreateParameter("res",adInteger, adParamOutput ) '返回值:"0-操作正确,1-无此记录,更新失败,2-记录已经存在,插入失败,3-字段信息不符合要求,4-插入/更新数据库失败
    CMD.Parameters.Append CMD.CreateParameter("err",adVarchar, adParamOutput,30 ) '返回值

    CMD.Execute
    getres=CMD(res)
    geterr=CMD(err)

    Dim rsnew
    set rsnew= Server.CreateObject("adodb.recordset")
    Set cmd  =  Server.CreateObject("ADODB.Command")

    cmd.ActiveConnection = nothing '关闭CMD数据库连接。
    Set cmd  =  nothing

    '------- 调用Oracle存储过程结束 end if
    rs1.movenext
    loop
    rs1.close  %>