问题标签 [bulk-collect]

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 投票
1 回答
398 浏览

oracle - 批量收集问题

我有一个过程,我需要使用批量收集从游标中获取数据。这种方法的问题是 - 有时记录正在被处理,有时它们不是。我无法确定根本原因。当我尝试调试问题时,toad 没有响应并超时。这是代码。请帮忙!

0 投票
1 回答
421 浏览

oracle - 使用具有两种行类型的批量收集

我有一个游标查询,它返回两个表的记录,如下所示。

我应该如何使用批量收集在收藏中收集它们?

我试过了:

但上面似乎不起作用。

0 投票
0 回答
616 浏览

tsql - 全局临时表和批量收集

我要向你解释我的问题。我必须将 t-sql 脚本转换为 pl/sql 脚本。t-sql 中有我的代码:

经过大量的 oracle 文档和论坛,我写了这个:

但是,我这里有一个错误NCHAR(MAX)。我必须输入一个像 100000 这样的大值?如果我放这个,他会在EXECEPTION语法错误后给我一个错误...

另一方面,如果有人能告诉我如何调整我的批量收集...我没有找到任何关于批量收集到像我这样的集成文件的文档...

我希望我很清楚,因为我真的很难解释......我是Oracle(PL / SQL)的初学者......

再次感谢大家的帮助

编辑:我通过 .bat 启动此脚本。我拿了参数,用参数函数中的值填充了“$(nomfic)”。

0 投票
2 回答
14532 浏览

oracle - PLS-00497:不能在 INTO 列表中混合单行和多行 (BULK)

我创建了一个程序来使用 显示两个表中的数据BULK COLLECT,但我不断收到此错误。

但是,如果我删除BULK COLLECT并在语句中包含 where 子句,它会起作用。

0 投票
2 回答
615 浏览

oracle - 为什么 BULK COLLECT 在 Oracle Package PROC 中给出错误的绑定变量编译错误?

我正在尝试使用 3 个字符串来表示一组姓氏、名字和中间名。

传入的参数最终看起来像这样:

目标是为动态 SQL 构建一个过滤器,如下所示:

到目前为止,我有一个这样的传入参数:

然后

我有:

LAST_NAMES_TAB 定义如下:

LAST_NAMES 的定义如下:

在我开始之后,我有:

我认为这会填满一个名为 v_last_names_tab 的 TYPE LAST_NAMES_TAB 表,如下所示:

但是当我尝试编译时,我收到“Bad Bind variable”:v_last_names_tab”错误消息。

我怎样才能像这样格式化我的传入数据,以便我可以滚动它。

0 投票
1 回答
5219 浏览

oracle - Oracle Bulk Collect with Limit and For All 未正确处理所有记录

我需要通过存储过程处理 Oracle 表的近 60k 条记录。处理过程是,对于每个这样的行,我需要删除和更新第二个表中的一行,并在第三个表中插入一行。

使用光标循环,该过程大约需要 6-8 小时才能完成。如果我切换到带限制的批量收集,执行时间会减少但处理不正确。以下是程序的批量收集版本

对于大约 20k 的这些记录,第一次删除操作被正确处理,但后续更新和插入没有被处理。对于剩余的 40k 记录,所有三个操作都得到了正确处理。

我错过了什么吗?另外,我可以与 Bulk Collect 一起使用的最大 LIMIT 值是多少?

0 投票
1 回答
62 浏览

sql - 过程中的 PLSQL DML 语句

我正在尝试执行以下过程,但它说我使用 BULKCOLLECT 和 FORALL 来重构我的代码。这只是一个警告还是我不应该像下面那样使用我的程序。如果是这样,我应该如何在迭代数组时修改代码,并且我需要将每个值更新到表中。

/

0 投票
0 回答
68 浏览

sql - 将一组数据与另一组涉及数据范围的数据进行比较的最有效方法是什么

我试图想出最有效的方法来比较当前生产数据与我已经折叠日期范围的数据。

所以基本上我有一些生产数据,其中用户将连接到给定的计划,然后可能切换到另一个或一个月内不在计划中等等......

例如:

然后这些日期被折叠,在上面的情况下,返回将是 3 个跨度

生产的折叠跨度被放入一个关联数组中,以便我可以检查它们是否与此运行的先前过程生成的图像进行对比。

我还将当前折叠跨度的数据集加载到一个数组中,以便可以更快地访问它,而不是转到生产数据数组的每一行的表。这是通过创建一个与我正在填充的表相同的数据类型对象来完成的,然后像这样批量收集

所以此时我有 2 个由成员填充和排序的关联数组及其有效性。

那么,比较差异和其他变化的最佳方法是什么?

到目前为止,我遍历生产数据,暂时加载另一个第三个数组,其中仅包含来自当前折叠数据的成员数据,例如:

现在如果这个集合有 0 行,我知道我可以添加新记录,继续,循环遍历这个集合并将其与外部循环的当前行进行比较,如果相同,则当有差异时无所谓,事情需要更新。

这似乎对每一行都做了很多开销,我只是想知道是否有更好的方法来比较基于客户及其有效数据范围的差异的集合。

另一个问题是我限制了批量收集的大小,所以如果同一个客户跨越不同的批量收集,我将不得不解决这个问题。

因此,我们的目标是让这个新表与生产数据保持同步,只是数据跨度的折叠窗口。

0 投票
1 回答
1155 浏览

oracle - oracle批量收集和读取数据

我在 proc 下创建了从一个表中读取所有数据并将其填充到 .net 形式的网格中。

为了测试 proc 是否运行良好,我尝试使用下面的 Pl-sql 块打印数据:

但从这个过程中,我只得到最后一行。我想打印表中存在的所有记录。谁能帮我弄清楚上面的代码有什么问题。

0 投票
1 回答
38 浏览

oracle - 处理大量记录时单独记录日志

我有一个程序可以根据现有订单列表分配产品。

我尝试了以下2种方法。

  1. 批量收集:我通过加入 Order_Master 和 Product_Master 将步骤 1 和 2 合并到单个查询中。然后使用 Bulk-Collect 插入作业。但是我失去了个人记录的记录和跟踪。
  2. For 循环:我使用了上面给出的 For 循环。但这需要的时间太长了。多次增加我的执行时间。

我希望处理速度与日志记录和跟踪一起快速。任何帮助表示赞赏。

提前谢谢。