扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Essential —— 是。
Valid value —— 列位置从 1 开始。
@path —— 该属性的值是目标 XML 文档中节点的 XPath 位置。如果路径无效,则存储过程将中止。
Essential —— 是。
Valid value —— XPath 表达式。
如果要在 Xpath 中使用名称空间,请确保设置名称空间属性。
不能将通配符用于名称空间。
@using —— 该属性的惟一有效值是 SQL。如果该属性存在并设置为 SQL,那么 update value( 元素的子节点)被视为一个 SQL 查询。查询结果的第一行中的第一列将用作新的 update value。如果查询失败,那么存储过程将中止。
Essential —— 否。
Valid value —— SQL。
对于 Xquery,可以使用关键字 Xquery,也可以使用 SQL/XML 函数将 XQuery 嵌入 SQL。
@action —— 该属性定义将在 XML 文档中的目标节点(使用 @path 属性中定义的 XPath 来定位)上进行的操作。如果操作失败,那么存储过程将中止。
Essential —— 否。如果未设置操作,则假定是一个替换操作。
Valid value —— 替换、追加、删除和计算:
replace —— 使用 update value 替换目标节点。
append —— 将 update value 作为子节点追加到目标节点。
delete —— 删除目标节点。
compute —— 将 update value 当作参数化的表达式。表达式中的问号 (?) 将由目标节点的现有文本值替换。然后,计算表达式,得到的值将替换目标节点中的现有值。计算出的值的 XPath 只能是叶节点。
update value —— 这为每个更新命令 (//update/*) 的子节点。它可以是文本节点,也可以是元素。
Essential —— 否。对于 action=delete,不需要它。
Valid value —— 当 @using 属性被设置为 SQL 时,子节点应该是文本值。它被当作 SQL 表达式。当 @action 属性被设置为 compute 时,子节点应该是文本值。它被当作参数化表达式。在所有其他情况下,子节点都视为要替换的值。
querySQL —— 任何用于检索需要更新的 XML 文档的有效 SQL 选择语句。
Essential —— 是。
Valid value —— 只能选择 XML 文档。如果选择了其他列,存储过程就会中止。
updateSQL —— 它表示参数化的更新 SQL。修改的 XML 文档作为运行时参数被绑定到更新 SQL。它允许将修改的 XML 文档保存到数据库中的其他 XML 列中。
Essential —— 否。如果该参数为 null,则使用可更新的游标来修改所选的列。
重要事项:从命令行处理器 (CLP) 执行更新存储过程时,始终需要设置 updateSQL 参数的值。如果将这个值设置为 null 或空字符串,CLP 会抛出 JCC 异常:Column not updatable。当您从应用程序代码 (Java) 内部调用更新存储过程时,将发生此情况(即 updateSQL 设置为 null)。
errorCode —— 值为 -1 指示存储过程因发生某种错误而中止。如果更新成功,则返回指示已更新的记录数的正值。
errorMsg —— 错误消息,包括 XML 解析器和 JCC 驱动程序抛出的任何异常。
注意:如果得到 java.lang.OutOfMemoryError,应该增加 java 堆大小:
db2 update dbm cfg using JAVA_HEAP_SZ 1024
设置存储过程
首先需要将更新存储过程 jar 安装到 DB2 中。这个过程仅需执行一次。下一步,对于每个数据库,需要分别注册存储过程。
重要事项:如果希望在存储过程中执行 Xqueries,那么需要为 DB2 设置 JCC 驱动程序。确保 DB2 在运行,然后从 DB2 命令窗口执行以下命令:
|
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者