我可以在过程中传递游标吗?

2023-11-21

我可以在过程中传递游标吗?

CURSOR  BLT_CURSOR IS
SELECT  BLT.sol_id,
        BLT.bill_id,
        BLT.bank_id
FROM BLT;

是我的光标。

Procedure abc(i want to pass the cursor here)

我该怎么做。


我假设您正在使用 Oracle(看起来是这样)。

你可以这样做:

PROCEDURE abc( p_cursor IN SYS_REFCURSOR) IS
   v_sol_id blt.sol_id%TYPE;
   v_bill_id blt.bill_id%TYPE;
   v_bank_id blt.bank_id%TYPE;
BEGIN
   LOOP
      FETCH p_cursor INTO v_sol_id, v_bill_id, v_bank_id;
      EXIT WHEN p_cursor%NOTFOUND;
      ...
   END LOOP;
END;

然后使用它:

DECLARE
   v_cursor SYS_REFCURSOR;
BEGIN
   OPEN v_cursor FOR
      SELECT  BLT.sol_id,
              BLT.bill_id,
              BLT.bank_id
      FROM BLT;
   abc (v_cursor);
   CLOSE v_cursor;
END;

但是,请注意过程 abc 需要知道游标的结构,即它返回 3 列特定类型。如果你想能够通过any将光标移动到过程,然后您需要查看使用 DBMS_SQL 包(这并不简单!)

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

我可以在过程中传递游标吗? 的相关文章

  • 为什么 SqlClient 在传递 SqlXml 时使用不必要的 XML 转换?

    我有一个关于从 C 代码将 xml 数据类型传递给查询的问题 首先 这是 SQL Server 上的一个表 CREATE TABLE dbo XmlTable id int IDENTITY 1 1 NOT NULL dat xml NOT
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • 自加入表

    我有一张像这样的桌子 Employee name salary a 10000 b 20000 c 5000 d 40000 我想获取所有工资高于A工资的员工 我不想使用任何嵌套或子查询 在采访中被问及并暗示是使用自连接 我真的不知道如何实
  • 月份增量查询

    我想通过添加 1 个月来更新数据库中的月份 但我不知道如何在以下存储过程查询中添加月份 我不擅长 sql 请检查它 ALTER PROCEDURE dbo ChangePassword password varchar 20 epasswo
  • 使用间隔阈值对不同的连续时间戳记录进行分组

    我有一系列间歇性间隔的带有时间戳的 GPS 坐标 我正在使用 PostGIS 将它们渲染到地图画布上 为了渲染它们 需要使用 PostGIS 中的 ST MakeLine 聚合函数将点聚合成线 从而在地图上留下 GPS 数据丢失的间隙 数据
  • 如何使用 LAMBDA 表达式在 LINQ 中执行 IN 或 CONTAINS?

    我有以下 Transact Sql 我正在尝试将其转换为 LINQ 并且很挣扎 SELECT FROM Project WHERE Project ProjectId IN SELECT ProjectId FROM ProjectMemb
  • SQL 国家字符 (NCHAR) 数据类型的真正用途是什么?

    也CHAR CHARACTER and VARCHAR CHARACTER VARYING SQL 提供了NCHAR NATIONAL CHARACTER and NVARCHAR NATIONAL CHARACTER VARYING 类型
  • 使用 postgres 和 node js 在单个语句中执行多个查询

    我需要在像这样的单个语句中执行插入和删除查询 INSERT INTO COMPANY ID NAME VALUES 1 Paul DELETE FROM COMPANY WHERE ID 12 这是我用于执行查询的 node js 代码 p
  • 我怎样才能知道oracle 9i中哪些值是数字

    我有这个包含 varchar 的数据库 我想知道哪些记录保存数值 我试过REGEXP COUNT和其他 但我在 9i 上运行 我认为这是针对 10g gt 我怎样才能实现这个目标 I tried select to number my co
  • SQL 错误:“没有这样的表”

    我试图解决为什么我的代码为所有查询返回 null 的原因 最后发现 sql 查询什么也没有返回 我使用简约代码创建了一个新的 AIR 文档 s WindowedApplication
  • date_sub 对于 mysql 可以,对于 postgresql 可以

    此查询适用于 mySQL 不适用于 Postgresql select from where id and h gt date sub now INTERVAL 30 MINUTE 错误是 Query failed ERREUR erreu
  • 如何查找当前数据库类型

    我们有一个 SQL 脚本可以在多种类型的数据库上执行 是否可以获取正在执行 SQL 脚本的当前数据库的类型 注意 我们不能使用非标准 SQL 即 TSQL 等 不 ANSI SQL 中没有任何关于确定数据库供应商的内容
  • 如何在 DB2 AS/400 中将小数字段转换为日期字段?

    我有一个 DECIMAL 字段 其中包含 AS400 格式的日期 1100614 我努力了 cast MYDATE as DATE 但我无法将 DECIMAL 转换为 DATE 而 DATE MYDATE 返回空值 如何将此字段转换为日期字
  • SQL:如何在按部分分组的查询中使用子查询?

    如何在按部分分组的查询中使用子查询 我使用 SQL Server 2008 R2 和 Delphi 2010 我收到此错误 Cannot perform an aggregate function on an expression cont
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • sql查询获取从一月到当月的所有数据,即使没有记录

    我不擅长 sql 所以任何帮助世界都很棒 我有一个 SQL 查询 可以获取从一月到当月注册的记录 我的代码示例 SELECT DatePart YEAR p createStamp as TheYear DatePart MONTH p c
  • Reporting Services 在哪里存储其日志文件

    最相关的谷歌结果似乎表明 为了访问日志 我们必须将您自己的日志表部署到数据库并制作报告服务写入它 http technet microsoft com en us library ms157403 aspx 简而言之 Reporting S
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • JDBC插入实数数组

    我试图将一个真实的数组插入到 postgresql 数组中 该表的定义是 String sqlTable CREATE TABLE IF NOT EXISTS ccmBlock sampleId INTEGER block REAL 插入内
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co

随机推荐

  • 如何在 Django 视图中最好地启动异步作业请求?

    我的视图功能之一是一个非常长的处理工作 显然需要以不同的方式处理 最好不要让用户等待很长时间 最好是我能够午餐处理处理作业 该处理作业将通过电子邮件发送结果 并且无需等待完成即可通知用户他们的请求正在处理并让他们继续浏览 我知道我可以使用
  • C++中的函数指针赋值和调用?

    我知道当我们使用函数名称作为值时 该函数会自动转换为指针 看下面的代码 int print int a return a int main int p int print int q int print cout lt lt p 8 lt
  • PHP 正则表达式验证字母和西班牙口音

    我如何添加 临时修改我的代码 以便除了正常字母表 a z 之外 西班牙口音也被视为有效 我的代码中有以下内容 public static function IsAlpha s reg a z s i count preg match reg
  • 在Python中删除字符串中间的连续字符[重复]

    这个问题在这里已经有答案了 从字节转换为字符串后 Google 地图 API 的标准返回值如下所示 b n destination addresses Washington DC USA n origin addresses New Yor
  • 在 java (JSP) 中提取 .tar.gz 文件

    我似乎无法导入所需的包或找到任何有关如何提取的在线示例 tar gzjava 中的文件 更糟糕的是我正在使用 JSP 页面 并且在将包导入到我的项目中时遇到问题 我正在将 jar 复制到WebContent WEB INF lib 然后右键
  • Typescript 方法装饰器

    我有这个代码 function changeFunc return function target any title string descriptor PropertyDescriptor descriptor value functi
  • Python 不向多个地址发送电子邮件

    我看不出我哪里出了问题 我希望有人能发现这个问题 我想向多个地址发送电子邮件 但是 它仅将其发送到列表中的第一个电子邮件地址 而不是同时发送到两者 这是代码 import smtplib from smtplib import SMTP r
  • 检测用户所做的屏幕分辨率更改(Java Listener?)

    我有一个 Java 应用程序 可以启动 创建 GUI 并且运行良好 如果用户更改屏幕分辨率 从 1440x900 切换到 1280x768 我希望能够侦听该事件 有任何想法吗 PS 我想在事件 侦听器模式下执行此操作 而不是在轮询模式下执行
  • sbt-assemble 包括测试类

    我跟随sbt assemble 包括测试类来自中描述的配置https github com sbt sbt assemble组装工作正常 当我加载 sbt 时我得到 assembly sbt 5 error reference to jar
  • 卸载动态库需要两次 dlclose() 调用?

    我有一个动态库 我使用它加载dlopen 然后使用卸载dlclose 如果我不包含任何目标 C 代码dlopen 需要一个dlclose 调用这是预期的行为 但是当我包含任何目标 c 代码作为目标时 我遇到的问题是我需要做两件事dlclos
  • 无法在 Eclipse 中创建新的 FXML 文件

    当我尝试在 Eclipse 中创建一个新的 FXML 文件 文件 gt 新建 gt 其他 gt JavaFX 新的 FXML 文档 gt 下一步 时 什么也没有发生 它不创建文件 当我尝试创建 FXGraph 或 JavaFX HTML 模
  • 使用.NET Core从Azure表存储中检索前n条记录

    是否可以使用 C 从 Azure 表存储中检索前 n 条记录 我正在使用 NET Core 如果我也能得到一些参考资料那就太好了 请注意 我的所有实体都是使用 Log Tail 模式存储的https learn microsoft com
  • 我使用了 matplotlib,但图形中出现了错误消息“

    import matplotlib pyplot as plt from matplotlib import font manager rc f name font manager FontProperties fname C Window
  • C++中map的初值假设

    我正在初始化地图map
  • Pandas/Numpy NaN 无比较

    Python Pandas 和 Numpy 中 为什么比较结果不同 from pandas import Series from numpy import NaN NaN不等于NaN gt gt gt NaN NaN False but N
  • 如何将我的 Node.js 客户端连接限制为 2 个?

    我基本上试图只允许 2 个客户端同时连接到该应用程序 我应该如何处理这个问题 这是我的服务器代码 var express require express app express server require http createServe
  • LabelEncoder 将缺失值保留为“NaN”

    我正在尝试使用标签编码器将分类数据转换为数值 我需要一个 LabelEncoder 将缺失值保留为 NaN 以便之后使用 Imputer 所以我想在像这样标记后使用掩码来替换原始数据框 df pd DataFrame A x np NaN
  • NSOpenPanel 作为工作表

    我环顾四周的其他答案 但似乎没有什么可以帮助我的情况 我有一个 viewController 类 其中包含按钮的 IBAction 此按钮应该从该 viewController 打开一个 NSOpenPanel 作为工作表 class Vi
  • Angular 在父组件嵌套表单中使用子组件表单

    将子组件表单放入父组件表单的最佳方法是什么 我们使用的是2019年最新的Angular 8 经过研究 以下方法并不完全有效 父组件 ngOnInit this parentForm this fb group childForm1 etc
  • 我可以在过程中传递游标吗?

    我可以在过程中传递游标吗 CURSOR BLT CURSOR IS SELECT BLT sol id BLT bill id BLT bank id FROM BLT 是我的光标 Procedure abc i want to pass