问题标签 [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 投票
0 回答
561 浏览

oracle - BULK COLLECT 和 FORALL 带参数

我正在尝试使用 BULK COLLECT 和 FORALL 来加快我需要进行的更改。我正在使用 2 个游标,第一个返回 +6000 条记录,我需要这个游标的参数来执行第二个游标,它必须为第一个记录的每条记录执行 300 次更新。在数据库中运行需要 2 个小时,我正在尝试改进代码以减少这种情况。你能帮助我吗?

我的代码:

谢谢!

0 投票
1 回答
128 浏览

plsql - 如何批量收集到子查询中的 UDT 类型

我正在尝试创建一个值集合,我计划为其运行 FORALL DELETE FROM [table] 。当我在子查询中有一个 UDT 时,似乎没有任何东西被批量收集到集合中。

这似乎不起作用。

还确认对象类型中的列大小与 Person 表中的大小相同。(思想填充可能是一个问题。)

对象类型

集合类型

存储过程

模拟表数据

当我使用 TABLE(tmpPList) 时,tmpTBL1 没有填充值。我希望从人身上删除记录。试图找到在 PERSON 中存在但在 tmpPList 中不存在的 ATTR1。

更新: 使用:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit

0 投票
1 回答
909 浏览

oracle - 使用 BULK COLLECT 和 FORALL 批量插入记录

我是 PL/SQL 的初学者,从不同的表中获取大量记录,并希望使用带有 BULK COLLECT 和 FORALL 的匿名块插入到 PL/SQL 中的单个表中。任何人都可以帮助我确定以下代码是否正确。我参考了很多链接

http://uksanjay.blogspot.com/2012/08/difference-between-bulk-collect-and.html?m=1

如何在 Pl/SQl 中使用批量收集和插入

有两个表 'ABC' 和 'BCD' 从中获取记录并插入到目标表 'DEF'

ABC 表(A、B、C 是列名)

BCD 表

在目标表“DEF”中,我必须插入两个表记录。

代码如下:

PS:实际代码中select语句比较复杂,源表'ABC'和'DEF'由百万条记录组成。所以请帮助我编写有效的代码。

0 投票
1 回答
1656 浏览

oracle - 使用 Bulk Collect 将批量记录插入远程数据库 (dblink)

我想使用 DBLINK - @FMATLINK 将来自不同表的大量记录插入目标远程表“Audition_Detail”。我使用了批量收集,但它的抛出错误。我也浏览了一些链接:

克服通过数据库链接进行批量插入的限制

PLS-00394:提取语句的 INTO 列表中的值数量错误

代码如下:

错误报告 -

ORA-06550:第 39 行,第 3 列:

PLS-00394:FETCH 语句的 INTO 列表中的值数量错误

ORA-06550:第 39 行,第 3 列:

PL/SQL:忽略 SQL 语句

ORA-06550:第 40 行,第 4 列:

PLS-00739:远程表 06550 不支持 FORALL INSERT/UPDATE/DELETE。00000 -“行 %s,列 %s:\n%s”

*原因:通常是 PL/SQL 编译错误。*行动:

0 投票
1 回答
70 浏览

loops - 更有效地使用游标循环,插入并提交每一行(Oracle)

我在下面写了这样的东西(它有效),但在我的情况下,对于 150 万行,它并没有我需要的那么有效(它可能会运行 2 天)我看到了像 BULK COLLECT FETCH FORALL 之类的东西,但我是没有设法将我的代码重写为此而没有错误。你能帮我吗?

谢谢

如果有必要,我在这里给出我称之为的程序:

0 投票
1 回答
334 浏览

oracle - 如何使用嵌套表 PL/SQL 集合设置批量收集限制?

我正在尝试使用 limit 关键字对数据库查询设置限制。

这是我当前没有限制关键字的工作查询。

我想避免使用游标,但仍使用如下限制关键字。

0 投票
2 回答
803 浏览

oracle - 如何在批量收集循环中进行条件处理?

我们有Oracle 11G并且我正在尝试使用bulk collect. 问题是当我试图评估来自 origin 的一个字段是否为空时,我的包已失效。我有的:

宣言:

身体:

但是当我检查身体状态时INVALID

有什么想法吗?

0 投票
1 回答
95 浏览

oracle - ORA-00947 函数返回记录表的值不足

所以我正在尝试构建一个函数来返回包含在某些客户端订阅中的项目的记录。

所以我一直在建立以下内容:

2种:

1个功能:

我希望函数 tu 返回一个包含 2 列的表,其中包含表 PROGRAMS_FT 中包含在用户访问中的所有记录。

出于某种原因,我收到了编译警告 ORA-000947。我对错误代码的理解是,当插入的值与接收值的对象的类型不匹配时,就会发生这种情况,而我在这里看不到这种情况。

0 投票
1 回答
370 浏览

oracle - PL/SQL: ORA-00947: 没有足够的值

我创建了一个程序来显示员工的最高和最低工资的 n 个数。如果我给出 5 作为输入,则查询将为我提供 5 个员工的最高和最低工资。

对于上述场景,我创建了一个包含两列的对象,如下所示

然后我在对象类型的帮助下创建了嵌套表,这样我就可以使用嵌套表作为输出参数来一次返回所有行。

创建数据类型后,我创建了一个如下所示的过程

当我编译上述过程时,我得到的值不够。我还创建了具有两列的对象,并且在 select 语句中也只返回了两列。有人可以对此进行审查并帮助我或提供一些替代解决方案。

0 投票
1 回答
154 浏览

oracle - oracle 使用 sys refcursor 批量收集限制子句执行详细信息

我正在创建一个存储过程,以使用 limit 子句将数据从一个表(表 1)批量收集到另一个表(表 2)。

例如,如果我正在加载 80000 条记录,限制子句为 1000,那么 sys refcursor 中的 select 语句被执行了多少次?它会执行一次还是每个限制的迭代(80000/1000)= 80 次?

请有人提供有关处理的更多详细信息。

代码骨架片段