我正在使用以下代码遇到打开游标限制问题.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) 我正在尝试调用不接受输入参数的 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 界面结果面板中的数据网格。