Oracle SQL Developer中如何将SYS_REFCURSOR输出保存至Excel?
解决SQL Developer中存储过程游标结果网格展示&导出Excel问题
我来帮你搞定这个困扰!正好我之前在SQL Developer里处理过类似的存储过程游标导出需求,给你几个亲测有效的方法:
方法1:用「Run PL/SQL」功能(最省心)
- 打开SQL Developer的对象浏览器,找到你的
APP_PACKAGE.GETDATA存储过程 - 右键它,选**「Run...」**(注意不是「Run Script」哦)
- 在弹出的运行窗口里,输入参数填
11,确认输出参数:rc的类型是SYS_REFCURSOR - 点「Run」之后,结果会直接以标准网格格式展示出来——和你执行普通SELECT查询的结果一模一样,列名、数据都齐全!
- 接下来右键网格区域,选**「Export...」**,选择Excel格式(比如
.xlsx),设置好保存路径就能导出完整的带列名的文件了
方法2:调整脚本执行的输出格式
如果你习惯用脚本执行,可以改一下SQL Developer的设置让游标结果以网格显示:
- 顶部菜单点**「Tools」→「Preferences」**
- 在偏好设置里找到**「Database」→「Worksheet」**
- 找到「Output Format」,把默认的「Text」改成**「Grid」**
- 保存设置后,再执行你的脚本:
这次variable rc refcursor; exec APP_PACKAGE.GETDATA(11, :rc ); print rc;print rc的结果就会变成熟悉的网格样式,同样可以右键导出Excel
方法3:用匿名块包装游标输出
如果上面两种方法都不合你心意,还可以写个简单的匿名块让游标直接以网格形式输出:
DECLARE v_rc SYS_REFCURSOR; BEGIN APP_PACKAGE.GETDATA(11, v_rc); DBMS_SQL.RETURN_RESULT(v_rc); END; /
执行这个块后,SQL Developer会自动把游标结果转换成网格展示,导出操作和普通查询完全一样
内容的提问来源于stack exchange,提问作者user1707389
相关产品推荐
相关产品推荐

