zoukankan      html  css  js  c++  java
  • ORA-01732: 此视图的数据操纵操作非法 解决方案 oracle10g

    ORA-01732: 此视图的数据操纵操作非法 解决方案 oracle10g

    ORA-01732: 此视图的数据操纵操作非法 解决方案,ORA-01732: data manipulation operation not legal on this view

    Oracle 10g的隐含参数_complex_view_merging引发的性能问题

    网上搜了下,有多种原因和解决方法,最终我选择先尝试一下修改系统隐含参数:

    SQL> alter system set "_COMPLEX_VIEW_MERGING"=true;
    系统已更改。
    SQL> alter system set "_SIMPLE_VIEW_MERGING"=true;
    系统已更改。
    再次执行sql,OK!没有再报错了

    于是将_complex_view_merging全局设置为true, alter system set "_complex_view_merging" = true scope=both;

    其他参考资料:

    带union all的视图不是可更新的视图。
    可更新视图:
    1)没有使用连接函数、集合运算函数和组函数
    2)创建视图的select语句中没有聚合函数且没有GROUP BY,ONNECT BY,START WITH子句以及DISTINCT关键字
    3)select语句中不包含从基表红通过计算得到的列
    4)创建视图没包含只读属性

    有限制的,详细参考concepts

    而可更新的连接视图(updatable join view )是指能够执行 UPDATE,
    INSERT,和 DELETE 操作的连接视图(join view)。
    ALL_UPDATABLE_COLUMNS,DBA_UPDATABLE_COLUMNS,及
    USER_UPDATABLE_COLUMNS 数据字典视图(data dictionary view)中的信
    息描述了视图中那些列是可更新的。为了保证视图是可更新的,其定义中不
    能包含以下语法结构(construct):
    ● 集合操作符(set operator)
    ● DISTINCT 操作符
    ● 聚合函数(aggregate function)或分析型函数(analytic function)
    ● GROUP BY,ORDER BY,CONNECT BY,或 START WITH 字句
    ● 在 SELECT 之后的列表中使用collection expression
    ● 在 SELECT 之后的列表中使用子查询(subquery)
    ● 连接(join)(但是有例外情况)

     

    Oracle Database 10.2.0.4 bug-_complex_view_merging 

    http://blog.sina.com.cn/s/blog_4d22b9720100kdqk.html

  • 相关阅读:
    病历管理系统(附源码)
    2013年未之wpf项目乱述
    非农行情的做单策略
    Open Source Trading Platforms ( who needs mt4 ?)
    【原创】如何获得近10年的1分钟完整历史数据并导入MT4
    MetaTrader 4客户端的秘密
    六张图教你交易美国5月非农数据
    创业手札
    如果想开公司,你必须了解这些!!创业的人收藏吧!!
    如何开设港股和美股投资账户
  • 原文地址:https://www.cnblogs.com/handsome1013/p/8510275.html
Copyright © 2011-2022 走看看