- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果可以在 SQL Server (2012) 中的现有 xml 实例中动态插入 xml 节点,我还没有找到任何文档。我知道您可以插入或替换条件值,但如果可以根据某些条件动态完成插入位置,似乎没有任何文档。例如,假设我有这个 XML-DML 调用:
SET @xml.modify('insert <SecondaryContact><Name>{ sql:variable("@contactName") }</Name>
<Phone>{ sql:variable("@contactPhone") }</Phone>
<Email>{ sql:variable("@contactEmail") }</Email></SecondaryContact>
after (/Project/PrimaryContact)[1]');
将对 after
之后列出的节点进行修改关键字是有条件的是有效语法吗?以下是我所指的示例:
SET @xml.modify('insert <TechnicalContact><Name>{ sql:variable("@contactName") }</Name>
<Phone>{ sql:variable("@contactPhone") }</Phone>
<Email>{ sql:variable("@contactEmail") }</Email></TechnicalContact>
after (
if(count(/Project/SecondaryContact) = 0)
then (/Project/PrimaryContact)[1]
else (/Project/SecondaryContact)(1)
)');
是动态选择位置的唯一方法 IF..ELSE
XML DML 语句之外的语句,或者我的示例 XML-DML 是否有效?
编辑 示例 XML:
<root>
...
<PrimaryContact Id="1234">
<Name>John Doe</Name>
<Phone>555-555-5555</Phone>
<Email>somewhere@test.com</Email>
</PrimaryContact>
<SecondaryContact Id="1236"> <--OPTIONAL
<Name>John Doe1</Name>
<Phone>555-555-5556</Phone>
<Email>somewhere1@test.com</Email>
</SecondaryContact>
<TechnicalContact Id="2234"> <--OPTIONAL
<Name>John Doe2</Name>
<Phone>555-555-5255</Phone>
<Email>somewhere3@test.com</Email>
</TechnicalContact>
...
</root>
我知道结构不理想。应该是<Contacts><Contact Type="PRIMARY" Id="1234">...</Contact>...</Contacts>
, 但想看看动态插入位置是否可以在 DML 语句中实现。对于这个问题,可以使用游标,因为它适用于一次性更新。
最佳答案
这个建议并不完全相同,因为它将插入在文档中后面出现的那个之后,而不是在 SecondaryContact
之后,但我怀疑你的情况是一样的:
SET @xml.modify('insert
<TechnicalContact><Name>{ sql:variable("@contactName") }</Name>
<Phone>{ sql:variable("@contactPhone") }</Phone>
<Email>{ sql:variable("@contactEmail") }</Email></TechnicalContact>
after (/Project/*[
local-name(.) = "SecondaryContact"
or local-name(.) = "PrimaryContact"
])[last()]
');
或者:
if @xml.value('count(/Project/SecondaryContact)', 'int') = 0
begin
SET @xml.modify('insert <TechnicalContact><Name>{ sql:variable("@contactName") }</Name>
<Phone>{ sql:variable("@contactPhone") }</Phone>
<Email>{ sql:variable("@contactEmail") }</Email></TechnicalContact>
after (/Project/PrimaryContact)[1]
');
end else begin
SET @xml.modify('insert <TechnicalContact><Name>{ sql:variable("@contactName") }</Name>
<Phone>{ sql:variable("@contactPhone") }</Phone>
<Email>{ sql:variable("@contactEmail") }</Email></TechnicalContact>
after (/Project/SecondaryContact)[1]
');
end
关于sql-server - 使用 XML-DML 在现有实例中动态插入 XML 节点的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40423748/
首先,我使用的是 11gR2 SQL> select * from v$version; BANNER ------------------------------------------------
在我的例子中,我有一个包含 2,976,977 条记录的 Mysql 表。该表在两列上有索引,我在更新和插入来自多个客户端的记录时使用了这两列。问题是更新或插入值花费了太多时间。有什么办法可以加快速度
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我无法说服为什么我不能在 中添加 DML 操作Oracle 函数 特别是里面游标循环 .我觉得 Oracle 不支持游标循环内的 DML 操作。 如果我需要在游标循环内插入表格,我该怎么办?在其中创建
这个问题在这里已经有了答案: Solution to "cannot perform a DML operation inside a query"? (3 个答案) 关闭 9 年前。 我收到这个错
我正在使用数组 DML 操作来加速将大量记录插入 SQL 数据库。原理描述here 。如何使用此功能的示例代码: TFDQuery *FDQuery1; ... FDQuery1->SQL->Text
我对 Oracle 11g 上的 BULK COLLECT 逻辑有疑问。 存储过程中的原始逻辑是: PROCEDURE FOO(IN_FOO IN VARCHAR2) IS BEGIN FOR C
我正在从这样的批量插入操作中捕获错误: begin --bulk insert forall i in v_data.first .. v_data.last save excepti
这是我第一次发布问题,对于任何格式问题深表歉意。 我这里有一段代码: Code 但我不断收到错误:“在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #1 包含非聚合列 'mysql
我已经在 MySQL 中创建了一个表 create table bittest (id int(11),constant bit(1) default b'0' ); 然后, insert into
对于给定的时间段(包括两个给定日期),例如 2002 年 12 月 1 日至 2003 年 7 月 31 日,找到在指定时间内至少拥有一张 EZ link 卡的人的集合。为了集合中的每个人,列出 (i
我的 MySQL 5.5 服务器已设置 autocommit=1。 我的存储过程有几个 DML,但没有明确的事务管理。 当我从 MySQL CLI 发出 call the_procedure() 时(
我有一个严重依赖 MySQL 回滚进行单元测试的 Spring/JDBC 应用程序。我发现,如果我在这些事务中执行某些 DDL 操作(即使是在临时表上),即使在正常的 DML 语句上,回滚也会失败。例
我正在尝试建立一个数据库,该数据库将根据 ID 号存储故事信息。现在我正在努力将上述信息放入表格中。我正在学习 python 和 sql,所以请耐心等待。 Pylint 告诉我在引用 title.in
我正在寻找一种使用 Pl/SQL 来检查由“立即执行”执行的语句是否为 dml 语句的方法。 最佳答案 可能有一个解决方案来检查查询字符串是否包含“INSERT”或“UPDATE”或... 但我认为这
我听说过有关数据库的术语 DDL 和 DML,但我不明白它们是什么。 它们是什么以及它们与 SQL 有何关系? 最佳答案 以下内容改编自这里MySQL What is DDL, DML and DCL
我听说过有关数据库的术语 DDL 和 DML,但我不明白它们是什么。 它们是什么以及它们与 SQL 有何关系? 最佳答案 以下内容改编自此处MySQL What is DDL, DML and DCL
hive :-创建表,AlterTable等完成需要一些后端DML(MetaStore)。 哪个类的人会做这些? 哪个类将从MetaStore获取数据库凭证? 最佳答案 您可以查看org.apache
我需要导出特定对象及其对 DML 的引用,然后另一个应用程序将使用 DML 获取文件并将其导入。数据库模式当然是相同的。 是否有一些工具可以做到这一点,或者我必须使用带选项的 mysql 转储? 我感
仅供引用 - 我不是开发人员,但在必须时编写代码:) 尝试编写一些 java 代码以批量方式更新数据库的多个记录。当我插入新行时,我正在查询另一个表以查找相关数据以添加相关日期。 代码似乎可以工作,但
我是一名优秀的程序员,十分优秀!