c# - 从 C# 调用 Oracle 存储过程?

标签 c# .net oracle stored-procedures ado.net

如何从C#中调用oracle中的存储过程?

最佳答案

请访问 oracle 为 Microsoft OracleClient 开发人员设置的 ODP 站点: http://www.oracle.com/technetwork/topics/dotnet/index-085703.html

下面还有一个示例代码,可以让您开始从 C# 调用存储过程到 Oracle。 PKG_COLLECTION.CSP_COLLECTION_HDR_SELECT 是构建在 Oracle 上的存储过程,接受参数 PUNIT、POFFICE、PRECEIPT_NBR 并在 T_CURSOR 中返回结果。

using Oracle.DataAccess;
using Oracle.DataAccess.Client;

public DataTable GetHeader_BySproc(string unit, string office, string receiptno)
{
    using (OracleConnection cn = new OracleConnection(DatabaseHelper.GetConnectionString()))
    {
        OracleDataAdapter da = new OracleDataAdapter();
        OracleCommand cmd = new OracleCommand();
        cmd.Connection = cn;
        cmd.InitialLONGFetchSize = 1000;
        cmd.CommandText = DatabaseHelper.GetDBOwner() + "PKG_COLLECTION.CSP_COLLECTION_HDR_SELECT";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("PUNIT", OracleDbType.Char).Value = unit;
        cmd.Parameters.Add("POFFICE", OracleDbType.Char).Value = office;
        cmd.Parameters.Add("PRECEIPT_NBR", OracleDbType.Int32).Value = receiptno;
        cmd.Parameters.Add("T_CURSOR", OracleDbType.RefCursor).Direction = ParameterDirection.Output;

        da.SelectCommand = cmd;
        DataTable dt = new DataTable();
        da.Fill(dt);
        return dt;
    }
}

关于c# - 从 C# 调用 Oracle 存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940587/

相关文章:

c# - 表单在 while 循环期间卡住

.net - 2 监听同一端口的进程 - .NET 不抛出异常

c# - 使用 OpenSSL .Net 检索证书

java - 在 Java 中访问多个数据源的一个 SQL 查询(来自 oracle、excel、sql server)

SQL 数据将列值转换为行值

c# - 制作自动运行应用程序的最佳解决方案?

c# - 使用 ExpandoObject 传递动态参数

sql-server - 如何使WHERE子句不区分大小写:从SQL Server查询Oracle链接服务器

c# - 在 Windows Phone 8.1 上捕获转储

c# - 如何将 .exe 作为 .NET 程序集加载?