如何解决使用go和InstantClient
我正在处理一个Oracle数据库,它通过InstantClient(版本11)(https://github.com/mattn/go-oci8)从go连接。我需要能够加载该对象并浏览结果... t_cursor输出参数。
我尝试了很多策略,我知道如何将函数参数映射到结构上,但是我不知道如何使用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,c)
select 1,c from dual
end
返回该选择结果的整个块是理想的,但是oracle块不返回结果集afaik。
有人可以帮忙吗?
非常感谢您
解决方法
它可以改为使用驱动程序https://github.com/rana/ora完成。
*在使用接受OUT SYS_REFCURSOR的存储过程进行准备时,Rset可能会传递给Stmt.Exe
README.me甚至有确切的示例。
注意事项:
- 目前尚不清楚是可以使用数据库/ sql接口,还是限于特定于lib的API。
- Instant Client受限于从12.1.0.1.0开始的版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。