首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用go和InstantClient从存储过程访问OUT参数(t_cursor类型)

使用go和InstantClient从存储过程访问OUT参数(t_cursor类型)
EN

Stack Overflow用户
提问于 2020-09-15 17:54:23
回答 1查看 107关注 0票数 2

我正在处理一个Oracle DB,通过InstantClient (版本11) (https://github.com/mattn/go-oci8)从go连接。我需要能够加载这个对象并浏览结果...t_cursor输出参数。

我尝试了许多策略,我知道如何将函数参数映射到go结构,但我不知道如何使用t_cursor类型,因为它似乎没有在InstantClient中实现

存储过程示例

代码语言:javascript
复制
create or replace procedure EXAMPLE(a IN NUMBER, b IN NUMBER, c OUT T_CURSOR) AS BEGIN

编辑我们还尝试执行代码中的SQL块来尝试处理第三个参数。

如果您添加了如下内容

代码语言:javascript
复制
declare
  c t_cursor;
begin
  EXAMPLE(:1, :2, c)
end

那么我就不知道如何让这个块返回一个包含游标的结果集。

代码语言:javascript
复制
declare
  c t_cursor;
begin
  EXAMPLE(:1, :2, c)
  select 1, c from dual
end

返回select结果的整个块将是理想的,但是oracle块不返回结果集afaik。

有谁能帮上忙吗?

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2020-09-15 23:43:44

可以使用驱动程序https://github.com/rana/ora来完成此操作。

使用接受OUT SYS_REFCURSOR的存储过程准备时,可以将

*Rset传递给Stmt.Exe

README.me甚至有这个确切的例子。

注意事项:

  1. 不清楚是否可以使用数据库/sql接口,或者您是否仅限于特定于lib的API。
  2. 即时客户端仅限于12.1.0.1.0及以上版本。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63899370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档