我是Oracle的新手,我想构建一个从返回REF_CURSOR
获取列的解决方案,并且在DB上创建数据库对象有一些限制,
所以我想运行存储过程并在C#脚本中返回REF_CURSOR
数据。
答案 0 :(得分:0)
您的后端程序可能是这样的:
procedure my_proc(
p_id in number,
p_cursor out sys_refcursor
) is
begin
open p_cursor for
select col1, col2, col3
from my_table
where id = p_id;
end my_proc;
然后在您的C#脚本中声明2参数调用,将第二个参数设置为输出(direction = ParameterDirection.Output)并键入OracleDbType.RefCursor(记住添加名称空间'Oracle.DataAccess.Client'和'Oracle。 DataAccess.Types'在对象/类的开头)。
不要忘记关闭数据阅读器以及你的连接,否则你的DBA会用红眼睛和血腥的尖牙敲门。