是在VC6里面访问的,试了很多方法都不行!哪位帮忙试一下啊!
函数内容如下: (in_username IN VARCHAR2, in_password IN VARCHAR2)
   RETURN pkg_linbo.myrctype
AS
   rc   pkg_linbo.myrctype;
BEGIN
   OPEN rc
    FOR
       SELECT user_name
         FROM tuser;   RETURN rc;
END;

解决方案 »

  1.   

    就用普通的ado方法啊,建立一个connect,提供connectionstring,然后连接就是了.
      

  2.   

    用ADO,然后Open连接数据库,填好连接字符串就好了
      

  3.   

    ADO连接Oracle数据库方法
    1。你首先需要在Oracle中配置好相关的服务,并且测试通过。
    2。把msado15.dll拷贝到工程目录,在工程文件的stdafx.h中添加一行
    #import "msado15.dll" no_namespace rename("EOF","adoEOF")
    3。在app的InitInstance函数里添加AfxOleInit(),初始化
    4。_ConnectionPtr m_Mydb;
    CString Connectstring;
    Connectstring="Provider=MSDAORA.1;Password=密码;User ID=用户名;Data Source=
    服务名;Persist Security Info=True";
    m_Mydb->ConnectionTimeout=100;
    try //检查数据库连接是否正常
    {
        if(m_MyDb->State!=adStateClosed)
        {
    m_MyDb->Close();
    m_MyDb->Open((_bstr_t)Connectstring,"","",-1);
        }
        else
        {
    m_MyDb->Open((_bstr_t)Connectstring,"","",-1);
        }
    }
    catch(...)
    {
            MessageBox("无法连接数据库,请重新设置");
            return;
    }
      

  4.   

    怎么会不行呢?
    使用
    _CommandPtr pCmd = NULL;
    pCmd.CreateInstance(__uuidof(Command));
    pCmd->CommandType = adCmdStoredProc;
    pCmd->CommandText = yourprocname;
    _ParameterPtr pPara = NULL;
    pPara.CreateInstance(__uuidof(Parameter));
    VARIANT v;
    v.vt=
    v.bstrVal=
    pPara=pCmd->CreateParameter("param1",ad...,ad...,sizeof(),v);
    pCmd->Parameters->Append(pPara);
    ......
    pCmd->ActiveConnection = ...
    m_pRecordset = pCmd->Execute(NULL,NULL,adStoredProc);不好意思,大概的代码就是这样的,你再修改一下。
      

  5.   

    要使用OleDb provider的连接方式,因为返回recordset需要 设置provider specific property: PLSQLRSet
    这里有vb的例子
    http://www.ysn.ru/docs/oracle/win.920/a95498/using.htm