Oracle存储过程仅返回-1时进行故障排除



我有一个存储过程,当我在数据库中手动和直接测试它时,它可以工作。该程序没有返回任何内容。由于它在我手动测试时运行良好,所以我不会在这里显示它。

但当我从代码中调用它时,我会得到返回值-1,我将其理解为"0";出了问题";。

command.CommandText = Properties.Settings.Default.OracleProcedureNewCable;
command.CommandType = System.Data.CommandType.StoredProcedure;
command.BindByName = true;
command.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, ParameterName = "p_tag_id", Value = (object)cable.TagId ?? DBNull.Value });
return command.ExecuteNonQuery();

System.Data.Common.DbCommand.ExecuteNonQuery返回-1

设置断点并没有给我提供太多关于它出错原因的信息。在这种情况下,如何进行故障排除?

提前感谢!

当我从代码中调用它时,我得到的返回值为-1,我将其理解为"出了问题";。

这是不正确的。

"对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。对于所有其他类型的语句,返回值为-1;

DbCommand.ExecuteNonQuery

当出现问题时,它将抛出异常。

而且Oracle存储过程甚至没有返回值。它们可以有输出参数,包括带有输出sysrefcursor参数的结果集,但它们没有返回值。

相关内容

  • 没有找到相关文章

最新更新