问题标签 [merge-statement]

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 回答
826 浏览

oracle - 将SP的输出游标合并到表中?

我有一个存储过程,它将输出作为参考游标返回。我想使用 MERGE 语句将输出存储在另一个表中。我遇到了问题,但是将所有语句混合在一起(WITH、USING、MERGE 等)。

有人可以帮忙吗?谢谢!

这是我想要输出的表(故意省略了 STOP_TIME):

这是SP:

0 投票
2 回答
7929 浏览

batch-file - 如何在 Oracle 合并语句中指定批量提交?

我正在使用 oracle 中的 MERGE 语句对数百万条记录进行批量插入/更新。好吧,其他选项可能是使用 FORALL 并利用 BULKCOLLECT 然后提交,但是此操作将再次降低性能,因为我需要保持循环。在完成整个合并操作后提交将影响性能,我想知道如何将提交频率放在合并语句中,以便每说 10000 行插入/更新,例如批量提交。

0 投票
2 回答
1200 浏览

sql - SQL Server 2008 - 合并脚本不起作用

我正在编写的这个合并脚本没有编译,我相信我有正确的语法。

错误:

消息 156,级别 15,状态 1,第 1 行关键字“into”附近的语法不正确。消息 102,级别 15,状态 1,第 2 行 'ct_value' 附近的语法不正确。

0 投票
1 回答
281 浏览

sql - SQL Server 2008 中的 MERGE 语句

我有一个表student(int ID, nvarchar(10) studentName) 和一个表用户类型myStudentType (int ID, nvarchar(10) studentName)

我需要创建一个接受myStudentType参数 ( @students) 和参数的存储过程@newname

并与学生合并myStudentType,以便两个表上存在的所有具有 id 的行现在都将在学生表中具有studentName- @newname(参数),并且 sp 将返回 @students 中未在学生中更新的所有记录的列表桌子

最好的方法是什么(最好使用合并)

谢谢

0 投票
1 回答
1397 浏览

sql - ora_rowscn 在 USING 子句中时的 Oracle 合并语句行为

我有一个 MERGE 语句,它给了我可怕的ORA-00904: invalid identifier错误信息。请注意,此处不存在“无效标识符”错误的典型问题 - 我没有尝试更新连接的列,也没有拼错列名。我试图子句的语句ORA_ROWSCN中使用 oracle 伪列。USINGSELECT

使用这些示例表,我尝试运行

如果我从 USING 子句中删除伪列 ora_rowscn,我将不再收到错误消息,并且合并成功完成。

如果我改为将查询放入 VIEW 中,则可以成功使用 ora_rowscn:

有没有办法在不为查询创建视图的情况下做到这一点?作为 ETL 过程的一部分,我必须在许多表上执行此操作,并且不希望构建多个视图。

编辑:根据格伦在评论中的建议,我尝试将查询放入子查询中:

这个查询仍然给我ORA-00904: invalid identifier错误信息。

这是重新创建问题的 DDL。

0 投票
1 回答
10594 浏览

sql-server - SQL Server MERGE 语句和 ORDER BY 子句

我想编写一个 MERGE 语句,通过使用 ORDER BY 子句从大表中选择前 10 行并将其更新为列值之一。MERGE 语句允许我选择 TOP 10 行,但我无法将 ORDER BY 子句放在任何地方。

0 投票
1 回答
9153 浏览

sql - Oracle SQL 合并语句只有一个表和一堆值

我正在使用 Spring JDBC 和 oracle SQL。

使用 SpringJDBC 类 MapSqlParameterSource,我已经映射了我想要合并的数据。

现在我想使用合并语句来更新/插入数据库表。我所拥有的只是一张表和一堆我想合并到其中的参数。

我是否必须以某种方式为using关键字创建一个临时表, 还是有其他方法?我将如何进行这样的合并?

还有两个唯一键 pr.id 和 pr.code。有时参数:idnull,当发生这种情况时,我想根据 pr.code 与 :code 匹配来访问更新语句。如果我的更新包含以下行,它是否仍然有效:

0 投票
1 回答
1070 浏览

sql-server - 而不是使用合并触发视图不应用表默认值

我有一个可更新的视图,它使用一个代替触发器来进行插入/更新。该触发器使用合并。我发现 Merge 语句没有应用来自底层物理表的默认约束,尽管合并文档建议它应该这样做。

以下示例演示:

我看到有人在使用 INSTEAD OF INSERT 触发器中的默认值中有类似的东西,并通过将插入的行复制到临时表中然后更改临时表以添加物理表中的默认约束来解决它。我不确定我能否容忍这些额外步骤的性能问题。

0 投票
1 回答
4172 浏览

stored-procedures - 在 SQL Server 2008 R2 的 MERGE 语句中更新插入的记录

我的 SQL Server 2008 R2 存储过程中有以下代码。在该存储过程中,我将一个城市及其家人和人员复制到另一个城市。

在这里,我将家庭的源和目标 id 维护在@FamilyIdMap.

左栏表示代码行号。

它给出这样的输出:

源表

目标表(使用上面给出的代码从源表复制)

上面输出中的问题是它没有更新parentID,我希望输出是这样的:

预期目标表

我知道问题出在代码的第 10 行

但是我应该用什么ParentID来更新它?提前致谢。

0 投票
1 回答
125 浏览

sql - 当源表中不存在相关行时更新

我有这样的合并语句:

这工作正常,但我还有一个条件,即当源中不存在它们的条目时,我必须更新目标中的行。

前任。

来源

目的地

现在,由于源中没有行D,我必须Column 3通过一些计算在目标中进行修改。但是由于合并只给出了三个选项deleteupdate以及insert行匹配与否。

如何在上述语句中实现此功能?

编辑

用我的评论编辑问题:

在上面我给出的示例中,它正在运行,然后它正在更新B并插入A到目标表中。D但是即使源表中不存在我也想更新