在 Oracle SQL Developer 1.5 中打印 Oracle Sys_refcursor

2023-12-03

我正在尝试执行返回 sys_refcursor 作为输出的过程。程序是PROCEDURE GET_EMPLOYEEs(P_ID in NUMBER, P_OUT_CURSOR OUT SYS_REFCURSOR);

我在 SQL Developer 1.5 中编写了下面的匿名块,它执行得很好,但是当我尝试打印光标时,出现错误。游标返回emp_name、salary等列。

set serveroutput on;
declare
result sys_refcursor;
begin
emp.emp360_utils.GET_EMPLOYEEs(222334,result); 
dbms_output.put_line(result); // Error here
end;

错误是

PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'

更新:对光标进行迭代,但仍然收到错误“对变量虚拟光标的引用无效”。

    set serveroutput on;
    declare
    dummycursor sys_refcursor;
    result sys_refcursor;
    begin
     emp.emp360_utils.GET_EMPLOYEEs(222334,result); 
    LOOP
    fetch result into dummycursor;
    EXIT when result%notfound;
    dbms_output.putline(dummycursor.lsn);
    end loop;
    end;

您需要循环引用游标并为其中的每一行打印出各个字段。在更新的版本中,您需要将光标提取到本地标量变量中,而不是另一个引用光标:

set serveroutput on;
declare
  result sys_refcursor;
  lsn number; -- guessing the data type
begin
  emp.emp360_utils.GET_EMPLOYEEs(222334,result); 
  loop
    fetch result into lsn; -- and other columns if needed
    exit when result%notfound;
    dbms_output.put_line(lsn);
  end loop;
end;
/

我已经猜到了lsn是一个数字,如果不是,则将其声明为正确的类型。如果光标返回多于一列,那么您将需要为每一列声明局部变量并将它们全部提取到其中,即使您只显示其中一列。


如果您只想显示它,那么您可以使用绑定变量来执行此操作(在当前版本中检查并返回到 1.5.0):

variable result refcursor

begin
  emp.emp360_utils.GET_EMPLOYEEs(222334, :result); 
end;
/

print result

注意the variable command is not in the declare堵塞;它是 SQL Developer 命令,而不是 PL/SQL 命令。As is print,尽管两者仅记录在 SQL*Plus 文档中。还要注意开头的冒号:result在块内,这表明它是一个绑定变量,而不是本地 PL/SQL 变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Oracle SQL Developer 1.5 中打印 Oracle Sys_refcursor 的相关文章

随机推荐

  • 设计通用 CRUD 会话 Bean

    这个问题已经在这里被问过一次简单 CRUD 的 EJB 3 会话 Bean 设计 我只是想就这个设计提出更深入的问题 我已经尝试在原始帖子中提出问题 但是 我没有看到任何回复 所以我决定创建新帖子 所以实现通用CRUD会话bean的Pasc
  • 如何在 GAE (Google App Engine) 中使用 Python main() 函数?

    我想用一个main 我的 GAE 代码中的函数 注意 下面的代码只是一个更大的程序的最小演示 因此需要main 如果我使用以下代码 它将按预期执行 import webapp2 class GetHandler webapp2 Reques
  • ffmpeg 和 SDL 制作的奇怪声音

    我正在关注原始 dranger com ffmpeg 教程的更新版本 https github com mpenkov ffmpeg tutorial 第三步 源码 https github com mpenkov ffmpeg tutor
  • Inno Setup 和 Check 中的两个条件

    我正在为我的应用程序编写一个简单的 Inno 安装脚本 我做了所有我想做的事情 但我阻碍了一些事情 我的应用程序有两种模式 即用户在安装开始时选择的计算机模式和客户端模式 如果选择客户端模式 应用程序必须从 Windows 启动 另外 我的
  • Xcode Swift 如何将图像添加到 UIAlertController 选项? [复制]

    这个问题在这里已经有答案了 我想添加图像 图标UIAlertController就像苹果音乐播放器内的对话框一样 我想要的彩色 大小图像 图标如下图所示 而不是像里面的那样这个问题 我相信它的 ios 11 功能 但我找不到它的文档 就像这
  • Spinner 上的 setPrompt 不起作用[重复]

    这个问题在这里已经有答案了 我对 Android 开发非常陌生 我似乎有一个我无法理解的问题 我有一个微调器 值设置得很好 但我的提示没有出现 我尝试在 xml 和 java 代码中设置它 但都不起作用 以下是我的配置 我觉得我错过了一些基
  • 恢复 gitlab 备份存储库捆绑文件与所有分支

    我需要从 gitlab 备份恢复一些存储库 此备份包含所有存储库的 bundle 文件 如何恢复包含所有分支的完整存储库 如果我跑git bundle list heads myfile bundle我可以看到所有的树枝 我想在本地恢复该存
  • 旋转 UIBarButtonItem

    我想旋转一个UIBarButtonItem 我已经能够做到这一点UIButtons using setTransform CGAffineTransformMakeRotation but UIBarButtonItem没有这个属性 我知道
  • 配置 Jenkins 连接到 BitBucket

    我正在尝试在 Mac Mini 上配置 Jenkins 以便从 BitBucket 存储库中提取 iPhone 应用程序的代码 在 Xcode插件 配置区域中 我尝试添加项目的git地址 但一直失败 经过研究 我似乎必须使用 ssh 部署密
  • Ruby/Rails ActionMailer 无法与 NTLM 一起使用

    我正在项目中设置邮件程序 但在通过 Exchange SMTP 服务器发送邮件时遇到困难 我已经安装了宝石ruby ntlm但我仍然得到unrecognized authentication type 这是我的代码 环境 rb Load t
  • Docker Swarm:未标记图像上的 docker 堆栈部署结果

    我正在使用以下命令将一些映像从我的注册表部署到我的应用程序服务器中docker swarm 模式主机t 我在注册表中的图像看起来像这样 执行docker images REPOSITORY TAG IMAGE ID CREATED SIZE
  • 无边框进度条对话框

    我正在显示一个ProgressBar在Android中 如下图所示 但有一个白色边框围绕进度条 如果我不想显示任何边框 即 进度条对话框中应仅显示进度条圆圈和文本 如何显示如下所示的进度条 如何在下图中显示 正在搜索 的进度对话框 Upda
  • 如何用PHP+IIS实现URL路由?

    我编写了一个内容切换器脚本 它使用动态 URL 来传递指示要发送哪些数据的参数 例如 要查看 关于 页面 您可以键入 http www example com page about 问题是 这对用户不友好 特别是在我的情况下 用户不一定会通
  • ASP Classic 解析来自curl POST -F 的数据

    我有以下指向我的服务的 CURL 请求 curl X POST http go example com H Cache Control no cache H Content Type application x www form urlen
  • C 字符串空零?

    我有一个基本的C编程问题 情况如下 如果我正在创建一个字符数组 并且想要使用 s 转换代码将该数组视为字符串 我是否必须包含一个空零 例子 char name 6 a b c d e f printf s name 控制台输出为 abcde
  • 如何一键实现歌曲的播放、暂停、停止?

    我尝试在 android 中制作一个应用程序 仅用一个按钮即可播放 暂停和停止一首歌曲 谁能告诉我如何提出该申请 final Button bPlay Button findViewById R id bPlay MediaPlayer s
  • Couchbase 5存储桶密码设置

    我正在尝试编写一个示例来学习 couchbase 我正在尝试将它与 Spring Boot 及其 CRUD 存储库一起使用 所以我已经下载了最新的 docker 镜像 但要点是 我找不到存储桶的密码 couchbase 控制台仅允许用户创建
  • 从另一个应用程序复制 Android 数据库?

    我有同一个应用程序的两个版本 当人们从免费版本升级到付费版本时 我希望将免费数据库复制到专业数据库位置 如果数据库文件属于另一个应用程序 有没有办法可以访问它本身 该文件是否属于应用程序 或者通常可以通过文件系统访问 最后 如何在不进行硬编
  • 如何在 ffmpeg 中捕获 stdout 流然后将其通过管道传输到 v4l2loopback

    我正在尝试将 h264 流传输到 ffmpeg 然后传输到我的 v4l2loopback 设备 问题是我对Linux相当陌生 所以无法让它工作 该流可以输出到 stdout 但我不知道如何使用 ffmpeg 再次捕获它 然后再次将其传输到我
  • 在 Oracle SQL Developer 1.5 中打印 Oracle Sys_refcursor

    我正在尝试执行返回 sys refcursor 作为输出的过程 程序是PROCEDURE GET EMPLOYEEs P ID in NUMBER P OUT CURSOR OUT SYS REFCURSOR 我在 SQL Develope