【问题标题】:C# and PlSql CursorC# 和 PlSql 光标
【发布时间】:2010-01-13 13:32:21
【问题描述】:

我有一个像这样的 Pl/Sql 过程签名

foo(param1 IN type1, param2 IN type1, c OUT REF CURSOR).

这个存储过程在 C# 中被调用。在 C# 代码中,我用这个光标填充了一个 DataTable。我想知道光标什么时候关闭。

我应该在 SP 中关闭它吗?在代码中?还是当我调用 Dispose 方法时对象 OracleRefCursor 会关闭它(因为它没有 Close 方法)?

谢谢

编辑:这是我正在使用的代码的一些示例

存储过程:

create or replace procedure foo1(param1 IN type1, param2 IN type1, c OUT REF CURSOR)
IS
BEGIN
    OPEN c
    FOR
       SELECT x
       FROM table;
END;

create or replace procedure foo2(param3 IN type1, param4 IN type1, c OUT REF CURSOR)
IS
   temp type1 := param3;
   x type1;
BEGIN
   LOOP temp < param4
      foo1(temp, param4, c);
      FETCH c INTO x;
      temp := temp +1;
   END LOOP;
END;

谢谢

【问题讨论】:

  • 你有一些使用 c# 和 plsql 游标的例子吗?因为我最近发布了问题,没有人回答
  • 你能给我看一些c#示例吗?因为我在使用 DataReader 从 Cursor 读取时遇到问题。 DataAdapter 有很多示例,但 DataReader 没有。提前致谢。
  • 我正在使用 DataAdapter.Fill() 方法用光标填充 DataTable。

标签: c# .net oracle plsql


【解决方案1】:

你不应该关闭游标,因为不会返回任何数据,你必须在你的 c# 代码中关闭它。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多