从 C# 调用 oracle 函数
Posted
技术标签:
【中文标题】从 C# 调用 oracle 函数【英文标题】:Calling an oracle function from C# 【发布时间】:2009-08-27 07:52:11 【问题描述】:我有一个 Oracle 函数 GetEmployeeDetails,它将所有员工详细信息保存到一个临时表 TempEmployeeDetails 表中。
我必须调用函数,然后对临时表进行选择查询。函数调用成功,但选择查询抛出以下错误。
"开始:输出:= MyPackage.GetEmployeeDetails(" + ":EmployeeId,");选择 * 从 TempEmployeeDetails;结束;"
上面的查询给了我这个错误:
ORA-06550:第 1 行,第 98 列:
PLS-00428:此 SELECT 语句中应有一个 INTO 子句
【问题讨论】:
【参考方案1】:如果您使用的是 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...
【讨论】:
以上是关于从 C# 调用 oracle 函数的主要内容,如果未能解决你的问题,请参考以下文章