问题描述
i face prob with the returned cursor from function ,i created function to return cursor ,and in the script ,i use the function to give me the cursor after that in loop i try to print all data that is in the cursor . but it didnt work , and it say invalid cursor that is my code : ------------------ creating the function ------------------------------ CREATE OR REPLACE FUNCTION GETDATA ( P_MANAGER_ID IN NUMBER ) RETURN SYS_REFCURSOR IS EMPS sys_refcursor; V_LNAME VARCHAR2(20); V_FNAME VARCHAR2(20); V_TOTAL NUMBER; BEGIN OPEN EMPS for SELECT LAST_NAME,FIRST_NAME FROM EMPLOYEES WHERE MANAGER_ID = P_MANAGER_ID ; CLOSE EMPS; RETURN EMPS; END GETDATA; -------------------------------------------------------------- --------------------lister the result -------------------- SET SERVEROUTPUT ON; DECLARE LISTS SYS_REFCURSOR ; V_LAST EMPLOYEES.LAST_NAME%TYPE; V_FIRST EMPLOYEES.FIRST_NAME%TYPE; BEGIN LISTS :=GETDATA(100); LOOP FETCH LISTS INTO V_LAST ,V_FIRST; EXIT WHEN LISTS%NOTFOUND; dbms_output.put_line(V_LAST||','||V_FIRST); END LOOP; END; thanks ;复制
专家解答
SQL>创建或替换函数GETDATA
2 (
3 P_MANAGER_ID编号
4) 返回SYS_REFCURSOR为
5个EMPS系统 _ 参考光标;
6 V_LNAME VARCHAR2(20);
7 V_FNAME VARCHAR2(20);
8 v _ 总数;
9
10开始
11为选择最后名称、名字打开EMPS
12来自人力资源员工
13其中MANAGER_ID = P_MANAGER_ID;
14个返回EMPS;
15 END GETDATA;
16/
函数创建。
SQL>
SQL>设置SERVEROUTPUT ON;
SQL>声明
2个列表SYS_REFCURSOR;
3 V_LAST hr.Employes.LAST_NAME % 类型;
4 V_FIRST hr.Employes.FIRST_NAME % 类型;
5开始
6个列表: = GETDATA(100);
7循环
8个将列表提取到V_LAST,V_FIRST;
9 EXIT WHEN LISTS%NOTFOUND;
10 dbms_output.put_line(V_LAST | | ',' | | V_FIRST);
11端环;
12个关闭列表;
13结束;
14/
内纳科赫哈尔
德哈恩,莱克斯
拉斐尔里,登
魏斯,马修
弗里普,亚当
卡弗林,帕亚姆
沃尔曼,山塔
凯文·穆戈斯
约翰·拉塞尔
合伙人,凯伦
阿尔贝托·埃尔拉祖里兹
杰拉尔德·坎布罗
埃莱尼·兹洛基
迈克尔·哈特斯坦
PL/SQL过程成功完成。
SQL>
SQL>
2 (
3 P_MANAGER_ID编号
4) 返回SYS_REFCURSOR为
5个EMPS系统 _ 参考光标;
6 V_LNAME VARCHAR2(20);
7 V_FNAME VARCHAR2(20);
8 v _ 总数;
9
10开始
11为选择最后名称、名字打开EMPS
12来自人力资源员工
13其中MANAGER_ID = P_MANAGER_ID;
14个返回EMPS;
15 END GETDATA;
16/
函数创建。
SQL>
SQL>设置SERVEROUTPUT ON;
SQL>声明
2个列表SYS_REFCURSOR;
3 V_LAST hr.Employes.LAST_NAME % 类型;
4 V_FIRST hr.Employes.FIRST_NAME % 类型;
5开始
6个列表: = GETDATA(100);
7循环
8个将列表提取到V_LAST,V_FIRST;
9 EXIT WHEN LISTS%NOTFOUND;
10 dbms_output.put_line(V_LAST | | ',' | | V_FIRST);
11端环;
12个关闭列表;
13结束;
14/
内纳科赫哈尔
德哈恩,莱克斯
拉斐尔里,登
魏斯,马修
弗里普,亚当
卡弗林,帕亚姆
沃尔曼,山塔
凯文·穆戈斯
约翰·拉塞尔
合伙人,凯伦
阿尔贝托·埃尔拉祖里兹
杰拉尔德·坎布罗
埃莱尼·兹洛基
迈克尔·哈特斯坦
PL/SQL过程成功完成。
SQL>
SQL>
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
601次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
586次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
494次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
478次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
462次阅读
2025-04-22 00:20:37
Oracle 19c RAC更换IP实战,运维必看!
szrsu
439次阅读
2025-04-08 23:57:08
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
437次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
426次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
371次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
360次阅读
2025-04-15 14:48:05