.net调用 Oracle 的存储过程,返回结果集DataTable,需要用到游标Cursor,
Open OutCursor For Select * From Sys_User;请问游标在什么时候关闭,
如果接着在存储过程里面关闭, .net程序会报ORA-24338: 未执行语句句柄,
难道只能在net程序中关闭connection的时候,游标才被关闭吗?请各位高手给予解释
谢谢
Open OutCursor For Select * From Sys_User;请问游标在什么时候关闭,
如果接着在存储过程里面关闭, .net程序会报ORA-24338: 未执行语句句柄,
难道只能在net程序中关闭connection的时候,游标才被关闭吗?请各位高手给予解释
谢谢
过程里使用完关闭即可。
兄弟我不需要提取数据啊,我是直接返回一个输出out的游标参数
在存储过程里面,手动关闭游标,net里面会报错,得不到结果集
存储过程代码如下
CREATE OR REPLACE Procedure GetUserData(Data_Cursor out pkg_Tool.CursorType) --返回out一个游标类型的参数
Is
Begin
Open Data_Cursor for 'Select * From Sys_User';
--这里不需要循环什么,我只要取整个结果集
--Close Data_Cursor; --如果这里关闭游标的话.net程序取不到结果集。
End GetUserData;关闭游标被我注释了,如果不注释的话,Net程序就要取不到结果集
。net里我忘记怎么关了,java里,游标对象。close就行了
ado.net的对象里面关闭的如果在存储过程里面关闭的话,ado.net就得不到结果集
一般情况下,你上面这句和关闭游标的那句话,要放在同一段里执行,要不然就会出现问题。建议是在存储过程里,把打开游标和关闭游标都写上。