首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何存储返回sysrefcursor的函数的结果?

场景:有一个过程,我们在其中有一个游标。我需要调用一个函数,该函数将从该光标值获取输入并返回SYS_REFCURSOR

我需要将函数结果存储在一个不同的变量/游标中&需要从过程中返回这个值作为out参数。

我使用的是Oracle 11g。

我该如何继续呢?

PFB我的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create or replace procedure prc_test 
    (p_dept_id in number,
    c_detail out sysrefcursor)--need to add extra out parameter
as
     var1 varchar2(200) :=null;

begin
   open c_detail for
     select -1 from dual;
   if p_dept_id is not null then
     open c_detail for
         select emp_no from emp 
          where dept_id=p_dept_id;     
     --i need to retrn value of  'get_emp_dtls' function as out parameter.
   end if;

end procedure;
/

要调用的函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE OR REPLACE FUNCTION get_emp_dtls
    (p_emp_no IN EMP.EMP_NO%TYPE)
   RETURN SYS_REFCURSOR  
AS
   o_cursor   SYS_REFCURSOR;   
BEGIN
   OPEN o_cursor FOR 
      SELECT 
         ENAME,
         JOB            
       FROM emp
       WHERE EMP_NO = p_emp_no;   
   RETURN o_cursor;
   -- exception part
END;
/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-23 10:26:43

下面是你的函数,它接受一个varchar2变量并返回一个引用游标(弱类型)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 CREATE OR replace FUNCTION fn_return_cur(v IN VARCHAR2)
RETURN SYS_REFCURSOR
IS
  c1 SYS_REFCURSOR;
BEGIN
    OPEN c1 FOR
      SELECT 'ABC'
      FROM   dual
      WHERE  'col1' = v;

    RETURN c1;
END;

/  

下面的过程将一个游标值作为参数传递给函数,并将返回的游标作为输出参数传递。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 CREATE OR replace PROCEDURE Pr_pass_out_cur(v_2 OUT SYS_REFCURSOR)
IS
  func_arg  VARCHAR2(3);
  other_arg VARCHAR2(3);
  CURSOR c_2 IS
    SELECT 'ABC' col1,
           'DEF' col2
    FROM   dual;
BEGIN
    LOOP
        FETCH c_2 INTO func_arg, other_arg;

        EXIT WHEN c_2%NOTFOUND;

        v_2 := Fn_return_cur(func_arg);
    END LOOP;
EXCEPTION
  WHEN OTHERS THEN
             NULL;
END;

/  

让我知道你的反馈。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45263749

复制
相关文章
TypeScript Number
TypeScript Number TypeScript 与 JavaScript 类似,支持 Number 对象。 Number 对象是原始数值的包装对象。 语法 var num = new Number(value); 注意: 如果一个参数值不能转换为一个数字将返回 NaN (非数字值)。 Number 对象属性 下表列出了 Number 对象支持的属性: 序号 属性 & 描述 1. MAX_VALUE 可表示的最大的数,MAX_VALUE 属性值接近于 1.79E+308。大于 MAX_VALUE
iOS程序应用
2023/05/05
5510
TypeScript Number
TypeScript 与 JavaScript 类似,支持 Number 对象。 Number 对象是原始数值的包装对象。 语法 var num = new Number(value); 注意: 如果一个参数值不能转换为一个数字将返回 NaN (非数字值)。 Number 对象属性 下表列出了 Number 对象支持的属性: 序号 属性 & 描述 1. MAX_VALUE可表示的最大的数,MAX_VALUE 属性值接近于 1.79E+308。大于 MAX_VALUE 的值代表 "Infinity"。 2.
陈不成i
2021/07/30
8340
为什么说 TypeScript 的火爆是必然?
TypeScript 这些年越来越火,可以说是前端工程师的必备技能了,各大框架都基于它实现。
神说要有光zxg
2022/04/12
6990
为什么说 TypeScript 的火爆是必然?
TypeScript 中的 Number 类型,Number 类型的特性、常见操作和注意事项
在 TypeScript 中,Number 类型用于表示数字。它可以包含整数和浮点数,用于进行数值计算和存储数值数据。本文将详细介绍 TypeScript 中的 Number 类型,包括 Number 类型的特性、常见操作和注意事项。
网络技术联盟站
2023/07/06
1.7K0
TypeScript系列 - 什么是TypeScript
看了很多关于TypeScript的文章,总体说来没有很好的,一个系统的学习TypeScript的资源。
Hongten
2019/02/25
1.1K0
TypeScript系列 - 什么是TypeScript
oracle number字段改为integer「建议收藏」
原文链接:http://www.fengyachao.com/archives/69
全栈程序员站长
2022/09/15
7340
为什么使用TypeScript
TypeScript是由微软开源的一种JavaScript超集语言,它不仅包含当前Javascript的特性,而且实现了esnext提案。TypeScript的宗旨是为JavaScript提供可靠的类型检查,避免出现意大利面条式的代码,在大型的项目中让源码更加可控。
conanma
2021/12/07
4650
为什么选择 TypeScript
相信经常关注前端技术的同学对 TypeScript 应该不陌生,或多或少看过一些关于 TypeScript 的文章。
陈皮皮
2020/06/28
1.7K0
为什么要用TypeScript
TypeScript的设计目的应该是解决JavaScript的“痛点”:弱类型和没有命名空间,导致很难模块化,不适合开发大型程序。另外它还提供了一些语法糖来帮助大家更方便地实践面向对象的编程。
用户7657330
2020/08/14
8600
为什么要用TypeScript
TypeScript是如何工作的
TypeScript 是一门基于 JavaScript 拓展的语言,它是 JavaScript 的超集,并且给 JavaScript 添加了静态类型检查系统。TypeScript 能让我们在开发时发现程序中类型定义不一致的地方,及时消除隐藏的风险,大大增强了代码的可读性以及可维护性。相信大家对于如何在项目中使用 TypeScript 已经轻车熟路,本文就来探讨简单探讨一下 TypeScript 是如何工作的,以及有哪些工具帮助它实现了这个目标。
ConardLi
2021/09/29
5.5K0
TypeScript是如何工作的
TypeScript String(字符串)
TypeScript String(字符串) String 对象用于处理文本(字符串)。 语法 var txt = new String("string"); 或者更简单方式: var txt = "string"; String 对象属性 下表列出了 String 对象支持的属性: 序号 属性 & 描述 实例 1. constructor 对创建该对象的函数的引用。 var str = new String( "This is string" ); console.log("str.constructor
iOS程序应用
2023/05/05
6040
为什么选择使用 TypeScript ?
相信经常关注前端技术的同学对 TypeScript 应该不陌生,或多或少看过一些关于 TypeScript 的文章。
陈皮皮
2020/07/10
2.4K0
如何自我介绍:我是字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
小Bob来啦
2020/12/16
6570
如何自我介绍:我是字符串
TypeScript: 为什么必须学
或者换一个问题,为什么在项目中,我们要选择使用typescript?也许你还不知道其中缘由,一起跟着我的思路捋一捋。
用户6901603
2020/07/25
1.3K0
TypeScript: 为什么必须学
为什么我觉得这次的chatGPT是真的智能AI
从上面可以看到,一个技术都是从萌芽期-膨胀期-低谷期-复苏期-成熟期,我们可以回顾一下所有经历过的技术,几乎都是沿着这个曲线进行发展的,最后到达成熟期之后为人所用,给人类的生活带来便利甚至改变人类的生活方式 ,
何处锦绣不灰堆
2023/03/07
7720
为什么我觉得这次的chatGPT是真的智能AI
TypeScript 是弱类型
以下这段代码不管是在 JavaScript 中还是在 TypeScript 中都是可以正常运行的,运行时数字 1 会被隐式类型转换为字符串 '1',加号 + 被识别为字符串拼接,所以打印出结果是字符串 '11'。
HoneyMoose
2021/11/16
6840
TypeScript 是弱类型
为什么说 Go 语言字符串是不可变的?
最近有读者留言说,平时在写代码的过程中,是会对字符串进行修改的,但网上都说 Go 语言字符串是不可变的,这是为什么呢?
AlwaysBeta
2023/06/02
3180
点击加载更多

相似问题

如何减小角度材料中占位符的字体大小

243

用于媒体查询的SASS占位符?

30

带有媒体查询的占位符shim

12

占位符的字体大小

12

更改占位符的字体大小

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文