更新视图与你构造视图时的表有关系,而且还与你的更新语句有关。你查看的user_updatable_columns是系统的数据字典,只能读,不能更新。这个数据字典只是告诉你在你的视图中那些列是可更新的,那些是不能更新的,视图中的列是否能更新,决定与你构造视图时的sql。

解决方案 »

  1.   

    我构造视图的sql语句就是最标准的方法:
    create or replace view as select field1,field2.... from table_name where ....
    这样是否会影响到视图的更新?请指教!
      

  2.   

    pls paster your create statement.
    rownum psedo_column can't apear in create view clause.
      

  3.   

    完整的create语句如下:
    create or replace view query_view as
    select 
    a.field1,
    a.field2,
    b.field1,
    b.field2
    from 
    table1 a,
    table2 b 
    where  a.field1=b.field1;
      

  4.   

    对了,上面的语句忘了一点,完整的应该如下:
    create or replace view query_view as
    select 
    a.field1,
    a.field2,
    b.field1,
    b.field2,
             null as field3,
             null as field4
    from 
    table1 a,
    table2 b 
    where  a.field1=b.field1;其中field3和field4是我自己创建的列,由select语句查询到的结果不包括field3和field4。我想用update更新的列也就是field3和field4。但就是更新不了!!!
      

  5.   

    用instead of trigger作视图更新
      

  6.   

    能将这个instead of trigger贴出来,作个参考吗?谢谢!!!
      

  7.   

    field3, field4对应哪个表中的字段呢?
    如果没有对应的字段又怎么更新呢?
    view并不实际存储数据。