C#中调用Oracle存储过程返回值的issue

zzkisswll 2009-03-03 09:45:58
string sql = "fnc_get_doc_submit_date"; //存储过程名
OracleConnection conn = new OracleConnection(OracleHelper.ConnectionEformDBString);
OracleCommand cmd = new OracleCommand(sql, conn);
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter a1 = cmd.Parameters.Add("piv_fnc_id", OracleType.VarChar, 11); //存储过程第一个参数a1.Direction = ParameterDirection.Input;
a1.Value = "FNC_IT_ACCT";
OracleParameter a2 = cmd.Parameters.Add("piv_doc_id", OracleType.VarChar, 11);//存储过程第二个参数
a2.Direction = ParameterDirection.Input;
a2.Value = "000649";
OracleParameter aa = cmd.Parameters.Add("result", OracleType.DateTime); //存储过程返回值,DateTime类型
aa.Direction = ParameterDirection.ReturnValue;
conn.Open();
cmd.ExecuteNonQuery();
System.Console.WriteLine(aa.Value.ToString()); // 不管如何修改,都得不到需要返回的值conn.Close();
向高手请教了!
...全文
137 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinjazz 2009-03-03
  • 打赏
  • 举报
回复
cmd.ExecuteNonQuery(); -〉object obj=cmd.ExecuteScalar();
rxopt 2009-03-03
  • 打赏
  • 举报
回复
将 aa.Direction = ParameterDirection.ReturnValue;
改为
aa.Direction = ParameterDirection.Output;
试试。
如果不行,用using Oracle.DataAccess.Client;包,改写一下。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧