我在过程中使用参考光标作为OUT参数。它仅返回一行150列。
之后我想在多个函数中使用相同的光标作为 IN 参数。但是当我尝试使用它时,只有第一个函数能够成功运行。
在第一个函数中,我从proc proc,动态列名称传递 ref cursor ,并使用OUT参数获取该列值。我在第一个函数中使用循环来获取列值,而不是在这里关闭引用光标。
在第二个函数中,我将参考光标作为 IN 参数,列名(用于更新目的)和第一列中的列值传递功能。我也在这里使用循环。但是这个光标并没有在这里循环。
我在圈内的更新声明不起作用。我没有关闭任何地方的光标,但我不知道它为什么会发生?任何可以理解的想法。
我在包中创建的所有对象,我按顺序在一个事务中调用它们。
Function GetPersNameId ( pinClientId person.client_id%type,
pupNameId person.nameid%type,
pupRC in out pls_integer )
return boolean;
Function GetOrgnNameId ( pinClientId organization.client_id%type,
pupNameId organization.client_id%type,
pupRC in out pls_integer )
return boolean;
Function GetEitherNameId ( pinClientId person.client_id%type,
pupNameId person.nameid%type,
pupRC in out pls_integer )
return boolean;
Procedure ResolveNameId( pinStartIntfKey number,
pinEndIntfKey number,
pupRC in out pls_integer);
答案 0 :(得分:0)
引用游标是一个"单向集合"如果你想再次阅读它,必须重新打开。
您有两种选择: