问题标签 [database-cursor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
43284 浏览

sql - 有没有办法在 SQL Server 游标中使用参数?

我在数据库中有父子关系。我需要做的是遍历父母的查询,并使用父母的主键,得到它的孩子。我遇到的问题是我需要使用参数化游标(传入密钥)来执行此操作。

SQL Server 中是否有这样的事情或模仿这一点的技巧?我试过这样做,但没有奏效:

但似乎它并没有让我设置@someKey。

对此的任何帮助将不胜感激。谢谢!

更新

我应该包含更多信息,因为我让这个例子看起来太简单了。我有多个需要使用的 @someKey 值。如前所述,我有亲子关系,最多可以有 6 个孩子。所以我得到了一个父母列表,它是各自的列并遍历它。在 WHILE-LOOP 中,我想从父级获取主键并调用另一个游标来获取子级信息(返回不同的列)。所以我会使用不同的@someKey 值对子光标进行多次调用。希望这是有道理的。

0 投票
5 回答
81764 浏览

python - 为什么查询sqlite数据库时需要创建游标?

我对Python 的 sqlite3 模块(以及一般的 SQL)完全陌生,这完全让我难过。大量缺乏对cursor对象的描述(更确切地说,它们的必要性)似乎也很奇怪。

这段代码是首选的做事方式:

这个不是,即使它工作得一样好并且没有(看似毫无意义)cursor

谁能告诉我为什么我需要一个cursor
这似乎是毫无意义的开销。对于我的脚本中访问数据库的每个方法,我应该创建和销毁一个cursor
为什么不直接使用connection对象?

0 投票
2 回答
455 浏览

database - DB存储过程操作设计——基于集合vs基于游标

有人告诉我,在设计存储过程时,基于集合的操作比基于游标的操作扩展得更好。

有人可以简要解释为什么会这样吗?

0 投票
2 回答
5186 浏览

sql - sql server 游标卡在循环中

好吧,我完全不知所措——这段代码曾经可以工作,现在突然不行了......

它似乎只是陷入了一个循环......我已经注释掉了 exec 语句,并且只是放入了一个 print 语句,但它一直在继续。“步骤完成”打印语句被打印,“进入光标”语句也是如此。然后什么都没有....只是挂起。查询本身返回 192 行,所以要循环,它应该循环 192 次,然后中断并结束。想法?

编辑:

我添加了这个:

...就在fetch next from GetAllCodes into @activationCodePKID声明之后 - 仍然没有。'进入光标'仍然被打印,但它只是挂起......

编辑2:

我删除了很多东西,并在'declare cursor'语句之后添加了这个,看看我是否可以输出任何东西......

仍然挂起......所以我拿出了'fetch statement',它似乎不再挂起。显然,它没有做任何事情,因为我没有让它做任何事情,但它完成了执行。

这让我想到了为什么 fetch 语句挂起。是否有一些服务器设置可能会影响这一点?一些内存问题?硬件问题?

0 投票
2 回答
631 浏览

oracle - 存储过程的光标问题

在下面的 oracle sql 包正文中,我收到“忽略 SQL 语句”错误,无法确定原因。请参阅以下语句中PROCEDURE updateLoansInLdcTabdborLoans_cursor的 SELECT 语句:

0 投票
2 回答
742 浏览

sql-server-2008 - 是我使用光标的错误还是这个脚本的其余部分有问题?

此代码在 SQL 2005 中运行良好,但似乎错过了 SQL 2008 或 SQL 2008R2 中选择末尾的随机记录数。我使用此代码备份生产服务器上的数据库。2008 服务器上有 37 个 db(不包括 tempdb),它每天备份 17 到 35 个这些 db(即使我运行选择,我总是返回 37 行)。它所在的作业完成且没有错误,但不会备份所有数据库。

0 投票
2 回答
34010 浏览

sql - 调用返回引用的函数

我正在使用 Postgresql 8.3 并具有以下简单函数,该函数将 a 返回refcursor 给客户端

现在,我可以使用以下 SQL 命令来调用这个函数并操作返回的游标,但是游标名称是由 PostgreSQL 自动生成的

除了如 38.7.3.5 所述将游标名称显式声明为函数的输入参数。返回游标,我可以声明自己的游标名称并使用此游标名称来操作返回的游标,而不是 Postgresql 自动为我生成吗?

如果没有,是否有任何命令可以获取生成的游标名称?

0 投票
3 回答
1424 浏览

tsql - 使用 CTE 代替光标

我有以下表结构。

我只想将 SubId 更新它为空的所有行,并且RawLineNumber以 1 递增并且SeqNumber以 1 递增。

我想用 A100 更新
RawLineNumber 2 和 3的SubId,用 A200 更新 RawLineNumber 11
SubId ,用 A300
更新RawLineNumber 26 和 27的SubId。

我有一个可以完成这项工作的光标,但我可以有一个 CTE 来处理它吗?

0 投票
3 回答
25765 浏览

java - 名称为 ... 的游标已存在 - SQL Server 2008

我有一个触发器,用于在对表进行更改时执行一些审计任务。在这个触发器中有一个 WHILE 循环,并且在循环中有一个游标,它在循环的下一次迭代之前被声明、使用、关闭然后释放。

当我调用一个更改表并反过来导致触发器运行的存储过程时,我从 Management Studio 中执行此操作,一切都按预期工作。

但是,当从我的 Java Web 应用程序中调用此存储过程时,我收到一个错误:“名称为 ... 的游标已经存在”。

这个存储过程在我手动执行时会起作用,而在从 Web 应用程序运行时不起作用,是否有原因?

0 投票
2 回答
8136 浏览

python - Python-Oracle 传入游标输出参数

我正在尝试在 python 和 oracle db 之间调用存储过程。我遇到的问题是传递一个游标输出参数。

Oracle 存储过程本质上是:

调用数据库的python代码是:

错误是:

我还尝试将字典作为关键字参数传递:

返回相同的错误。

谢谢。