ORACLE 10:
ORA-01445: cannot select ROWID from, or sample, a join view without a key-preserved table原来好好里的,现在莫名其妙的就不行了,也不知道哪里有问题,连接了很多个表,很多个字段 不知哪个出现了问题,只是说一个字段,但是以我的判断应该没问题的啊,但是在 ORACLE 11里没问题,不知是不是oracle bug,还是数据没累计到一定程度? 老大们碰到过吗?主要是给个解决思路。

解决方案 »

  1.   

    http://wenku.baidu.com/view/5fdb81d049649b6648d7475b.html
      

  2.   

    修改复杂视图?   复杂视图是不允许update的。
      

  3.   

    经过高人指点,现共享给大家:
    3个解决方案:
    1)升级到10.2.0.4
    2)升级到11g
    3)使用oracle的语法改成:类似
      9   WHERE header.header_id = line.header_id
     10     AND header.sold_to_org_id = cust.customer_id
     11     AND item.inventory_item_id = line.inventory_item_id
     12     AND item.organization_id = line.ship_from_org_id
     13     AND org.organization_id = line.ship_from_org_id
     14     AND salesrep.salesrep_id(+) = header.salesrep_id
     15     AND salesrep.org_id(+) = header.org_id
     16     AND sales_loc.location_id(+) = salesrep.attribute1
     17     AND header.orig_sys_document_ref = 'OE_ORDER_HEADERS_ALL74846'
     18     AND header.order_source_id = 0;最后我是安装了oracle补丁解决的。升级办法
    Oracle10.2.1 升级到Oracle10.2.4
     1.停止数据库和监听,所有oracle服务 
    2.安装,一定要选择原来的路径, 
    3.启动监听 
    4.dbua升级数据库