小编chr*_*ris的帖子

Oracle ODP.NET游标泄漏?

我正在使用以下代码遇到打开游标限制问题.oracle db上的开放游标限制设置为大约1000.以下代码似乎保留在游标上,即使我已经在using声明(我认为)中需要它的所有内容.(注意,我不需要从outRefCursor2读取任何内容)

我错过了usingODP.net或其他一些清理工作吗?
异常在迭代596处发生.

static List<Thing> GetDetailsForItems(List<string> items) {
  DateTime start = DateTime.UtcNow;
  var things = new List<Thing>();
  var spname = "SP_GET_THING_DETAILS";
  var outRefCursorName1 = "p_ref_cursor1";
  var outRefCursorName2 = "p_ref_cursor2";

  // Create params
  var pInput1 = new OracleParameter("p_input1",
                  OracleDbType.Varchar2, ParameterDirection.Input);
  pInput1.Value = "";
  // Input 2 can be blank
  var pInput2 = new OracleParameter("p_input2",
                  OracleDbType.Varchar2, ParameterDirection.Input);
  pInput2.Value = "";

  var outRefCursor1 = new OracleParameter(outRefCursorName1,
                  OracleDbType.RefCursor, ParameterDirection.Output);
  var outRefCursor2 = new OracleParameter(outRefCursorName2,
                  OracleDbType.RefCursor, ParameterDirection.Output);

  int count = …
Run Code Online (Sandbox Code Playgroud)

c# oracle odp.net cursor

4
推荐指数
1
解决办法
5926
查看次数

不带参数调用 Oracle 存储过程

我正在尝试调用不接受输入参数的 Oracle 存储过程。但是,在运行该程序时,我收到一条错误消息,指出

PLS-00306: wrong number or types of arguments in call to 'MY_PROC'
Run Code Online (Sandbox Code Playgroud)

要调用 proc,我只需在 TOra 中输入以下文本:

BEGIN
 SCHEMA.MY_PROC();
END;
Run Code Online (Sandbox Code Playgroud)

我也试过(虽然同样的错误)

EXEC  SCHEMA.MY_PROC();
Run Code Online (Sandbox Code Playgroud)

我熟悉 MSSQL,并且可以使用 SQL 服务器毫无问题地执行 SP,但我不知道如何使用 Oracle 执行相同的操作。我无法查看存储过程的实际代码,但从我拥有的有限文档来看,它似乎不接受任何输入参数,并且返回值是一个引用游标。我有一种感觉,我需要以某种方式传入一个引用游标,但我在这方面尝试过的一切都没有奏效。

我只想查看 SP 的结果,就好像我做了一个SELECT语句,也就是说,记录填充了 TOra 界面结果面板中的数据网格。

oracle stored-procedures

3
推荐指数
1
解决办法
3万
查看次数

标签 统计

oracle ×2

c# ×1

cursor ×1

odp.net ×1

stored-procedures ×1