【问题标题】:Behavior of the temporary lobs after successful Oracle node fail-overOracle 节点故障转移成功后临时 lob 的行为
【发布时间】:2016-11-18 06:54:01
【问题描述】:

当我尝试使用在 Oracle 节点故障转移之前创建的临时 lob 写入数据时,我的应用程序出现以下错误。

ORA-22922: nonexistent LOB value

请考虑在故障转移之前创建的所有其他游标按预期工作,但不是使用上述临时 lob 写入的 blob。 故障转移已成功完成。

应用程序已使用以下函数创建临时 lob,并使用 OCIBindByPos 绑定到数据库。

OCIDescriptorAlloc
OCILobCreateTemporary

【问题讨论】:

    标签: c oracle oracle-call-interface


    【解决方案1】:

    临时 LOB 的默认生命周期是一个会话。临时 LOB 存储在临时表空间中,使用临时段的事务将不会进行故障转移。

    ORA-22922“不存在的 LOB 值”

    原因:与输入定位器关联的 LOB 值不存在。 定位器中的信息不引用现有 LOB。

    操作:通过发出 select 语句重新填充定位器并重试该操作。

    【讨论】:

    • 感谢 JSapkota,但是我的 oracle 会话在节点故障转移后恢复,并且所有游标在故障转移后甚至都有效。只有这个 lob 定位器已失效。
    • 临时 LOB 存储在临时表空间中,使用临时段的事务不会进行故障转移。
    猜你喜欢
    • 2013-12-30
    • 2015-03-21
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2020-02-03
    相关资源
    最近更新 更多