我正在处理一个Oracle DB,通过InstantClient (版本11) (https://github.com/mattn/go-oci8)从go连接。我需要能够加载这个对象并浏览结果...t_cursor输出参数。
我尝试了许多策略,我知道如何将函数参数映射到go结构,但我不知道如何使用t_cursor类型,因为它似乎没有在InstantClient中实现
存储过程示例
create or replace procedure EXAMPLE(a IN NUMBER, b IN NUMBER, c OUT T_CURSOR) AS BEGIN编辑我们还尝试执行代码中的SQL块来尝试处理第三个参数。
即
如果您添加了如下内容
declare
c t_cursor;
begin
EXAMPLE(:1, :2, c)
end那么我就不知道如何让这个块返回一个包含游标的结果集。
declare
c t_cursor;
begin
EXAMPLE(:1, :2, c)
select 1, c from dual
end返回select结果的整个块将是理想的,但是oracle块不返回结果集afaik。
有谁能帮上忙吗?
非常感谢
发布于 2020-09-15 23:43:44
可以使用驱动程序https://github.com/rana/ora来完成此操作。
使用接受OUT SYS_REFCURSOR的存储过程准备时,可以将
*Rset传递给Stmt.Exe
README.me甚至有这个确切的例子。
注意事项:
https://stackoverflow.com/questions/63899370
复制相似问题