c# - 如何从 .NET 中的存储过程返回 oracle 输出参数

标签 c# .net oracle

我在尝试从 SP 取回数据时遇到严重问题。我试图这样做:

OracleCommand ora_cmd = new OracleCommand("a6r1.PR_ABC_P_ALTA_TARJETA_PAYWARE", ora_conn);
                    ora_cmd.BindByName = true;
                    ora_cmd.CommandType = CommandType.StoredProcedure;

                    int success= new int();

                    ora_cmd.Parameters.Add("Lc_Param_Issuer", OracleDbType.Varchar2, issuer, ParameterDirection.Input);
                    ora_cmd.Parameters.Add("Ln_Param_Valid_Product", OracleDbType.Varchar2, DropDownListProducto.SelectedValue.ToString(), ParameterDirection.Input);
                    ora_cmd.Parameters.Add("Ln_Param_Total", OracleDbType.Int32, parsed, ParameterDirection.Input);
                    ora_cmd.Parameters.Add("Lc_Param_User", OracleDbType.Varchar2, user, ParameterDirection.Input);
                    ora_cmd.Parameters.Add("Lc_Encrypted_Password", OracleDbType.Varchar2, pass, ParameterDirection.Input);
                    ora_cmd.Parameters.Add("Lc_Exito", OracleDbType.Int32, success, ParameterDirection.Output);
                    ora_cmd.Parameters.Add("Lc_Error", OracleDbType.Varchar2, errorMessage, ParameterDirection.Output);

但它不会向变量 sucess 或 errorMessage 返回任何内容。我究竟做错了什么?有没有更好的办法?当直接在 Oracle 上执行时它工作正常。

最佳答案

看来你不能使用现有的变量作为输出参数,试试这个吧

ora_cmd.Parameters.Add("Lc_Exito", OracleDbType.Int32).Direction = ParameterDirection.Output;

ora_cmd.ExecuteNonQuery();

if (ora_cmd.Parameters["Lc_Exito"].value == 0)

关于c# - 如何从 .NET 中的存储过程返回 oracle 输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14247921/

相关文章:

oracle - 如何美化来自命令提示符中 SELECT 查询的输出?

c# - 使用 ASP.NET Web API 将 yyyy-MM-dd 形式的日期查询参数反序列化为 noda time LocalDate 对象

C# 相当于 Java Robot 类

c# - EF CodeFirst 设置默认字符串长度并使用 DataAnnotations 覆盖?

.net - File.Copy() 从网络共享到同一台机器上的另一个共享是否通过网络复制文件?

java - ORA-29532 : Java call terminated by uncaught Java exception: java. awt.HeadlessException

c# - 从坐标节点索引

.net - .NET 中更好的 CSS?

c# - 有没有办法在应用程序的代码中使用 MSBuild 来构建另一个应用程序

oracle 表未锁定