代码之家  ›  专栏  ›  技术社区  ›  Hemanshu Bhojak

从C调用Oracle函数#

  •  0
  • Hemanshu Bhojak  · 技术社区  · 15 年前

    我有一个Oracle函数getEmployeeDetails,它将所有员工详细信息保存到临时表tempEmployeeDetails表中。

    我必须调用函数,然后在临时表上执行select查询。函数调用成功,但select查询引发以下错误。

    “开始:输出:=MyPackage.GetEmployeeDetails(” +“:employeeid,”“);从tempemployeedetails中选择*;结束;”

    上面的查询给出了这个错误:

    ORA-06550:第1行,第98列:

    PLS-00428:此SELECT语句中需要一个INTO子句

    1 回复  |  直到 13 年前
        1
  •  1
  •   Wael Dalloul    15 年前

    我认为您应该将查询与函数调用分开,如果您使用的是OracleClient,那么代码可能是:

    OracleCommand cmd = new OracleCommand("GetEmployeeDetails", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    
    
    par = new OracleParameter("EmployeeId", OracleType.int32);
    par.Value = EmployeeId;
    par.Direction = ParameterDirection.Input;
    cmd.Parameters.Add(par);
    
    cmd.ExecuteNonQuery();
    

    现在,要从tempemployeedetails获取数据,请执行如下另一个查询:

    OracleCommand cmd = new OracleCommand("SELECT * FROM TempEmployeeDetails", conn);
    OracleDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
       //do what you want...
    }