• 24. (ora-01410无效的rowid)临时表 on commit delete rows 与 on commit preserve rows 的区别


    ora-01410无效的rowid解决方式:

    把临时表空间改成会话级别的就可以了,即把临时表的创建选项由on commit delete rows改为on commit preserve rows,就可以了

    -- 事务级临时表:提交时删除数据
    create global temporary  table tmp_table1
    (
           x     number
    ) on commit delete rows ;
     
    -- 会话级临时表:会话结束时删除数据
    create global temporary table tmp_table2
    (
           x     number
    ) on commit preserve rows ;
     
    insert into tmp_table1
    values(1);
    insert into tmp_table1
    values(2);
    insert into tmp_table1
    values(3);
     
     
    insert into tmp_table2
    values(1);
    insert into tmp_table2
    values(2);
    insert into tmp_table2
    values(3);
     
    select * from   tmp_table1 ;
    X
    1
    2
    3
     
     
    select * from   tmp_table2 ;
    X
    1
    2
    3
     
    commit;
     
    select * from   tmp_table1 ;
    -- 无结果输出
    select * from   tmp_table2 ;
    X
    1
    2
    3
     
    SQL> conn / as sysdba;
    SQL> select * from   user01.tmp_table1 ;
    -- 无结果输出 
    SQL> select * from   user01.tmp_table2 ;
    -- 无结果输出
  • 相关阅读:
    Hbase JavaApi
    面向对象特征之继承
    重写(Override)与重载(Overload)
    数组排序
    EL表达式
    java异常
    业务代码与非业务代码
    设计思想之高内聚低耦合
    JDBC实现动态查询
    枚举
  • 原文地址:https://www.cnblogs.com/zkx4213/p/5018518.html
Copyright © 2020-2023  润新知