使用C从Oracle获取记录作为游标输出#[英] Fetching records from Oracle as a cursor Output using C#

本文是小编为大家收集整理的关于使用C从Oracle获取记录作为游标输出#的处理方法,想解了使用C从Oracle获取记录作为游标输出#的问题怎么解决?使用C从Oracle获取记录作为游标输出#问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

如何使用 C#.Net 和 ODBC 从具有输出参数作为光标的 Oracle 存储过程中获取记录?

我有一个存储过程 sp_myproc,它有一个游标作为输出参数.

在我的应用程序中,我使用 ODBC 连接到 Oracle.
问题是,光标没有这种类型的odbctype.

那么,我怎样才能获得记录呢?

OdbcConnection odbcCon = new OdbcConnection(connectionString);OdbcCommand odbcCmd = new OdbcCommand();odbcCmd.CommandText = "SP_myOracle";odbcCmd.CommandType = CommandType.StoredProcedure;//这里我要添加参数作为Cursor和Directon作为输出//DataTable dt = new DataTable();OdbcDataAdapter adap = new OdbcDataAdapter(odbcCmd);adap.Fill(dt);


我的存储过程是:

创建 替换过程 SP_myOracle(EmpDETAILSCURSOR OUT SYS_REFCURSOR)AS开始OPEN EmpDETAILSCURRSOR for选择 EMP_NAME from Emp;END


谢谢.

推荐答案

static void Main(string[] args){string constr = "User Id=hr; Password=hr;数据源=oramag;池化=假";OracleConnection con = new OracleConnection(constr);con.Open();OracleCommand cmd = con.CreateCommand();cmd.CommandText = "begin open :1 for从员工中选择 *其中manager_id=101;结束;";OracleParameter p_rc = cmd.Parameters.Add("p_rc",OracleDbType.RefCursor,DBNull.Value,参数方向.输出);cmd.ExecuteNonQuery();cmd.Parameters.Clear();cmd.CommandText = "cursor_in_out.process_cursor";cmd.CommandType = CommandType.StoredProcedure;OracleParameter p_input = cmd.Parameters.Add("p_input",OracleDbType.RefCursor,p_rc.值,参数方向.输入);cmd.ExecuteNonQuery();p_input.Dispose();p_rc.Dispose();cmd.Dispose();con.Dispose();}

给你

使用 Oracle REF CURSORs[^]

本文地址:https://www.itbaoku.cn/post/1356210.html