oracle 取奇数行的值,当查询返回很多行时,Oracle extractValue失败

我有可能不值得羡慕的任务,即编写数据迁移查询以使用将值添加到生产数据库的表中的新列的值填充现有记录。该表的地方大约有200,000行。当查询返回很多行时,Oracle extractValue失败

该值的来源位于存储在数据库中的某些XML中。我有一些XPath可以提取我想要的值,并且使用extractValue获取值似乎都很好,直到查询更新的记录数量开始变得比我在测试数据库中的数量更大。

一旦记录集增长到某个随机数量的大小,大约500行左右,然后我开始收到错误“ORA-19025:EXTRACTVALUE只返回一个节点的值”。考虑到数据库中有一些奇数行没有XPath的唯一结果,我试图限制查询中的记录以隔离坏记录。但是一旦我缩小了记录集,错误消失了。实际上没有任何行会为此XPath查询返回多个值。它看起来像extractValue发生了一些可怕的事情。

有没有人知道这件事?我不是SQL专家,甚至在SQL Server上花费的时间比Oracle多。所以如果我不能让这个工作,我想我留下来做一些与游标或什么搞乱。

任何建议/帮助?如果有帮助,我们在服务器上运行10g。谢谢!

+0

如果可能的话,添加一些代码(示例行,xpath,...)可能有助于调试问题 –

2009-06-15 09:42:21

+1

只有当extractvalue不对单个值进行操作时才会出现此错误。你可以使用extract()而不是extractvalue()来调试输出 –

2009-06-15 09:44:39

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值