我建了一个视图视图角本如下。
法1,CREATE OR REPLACE VIEW v_1
 AS 
 SELECT b.* FROM b,a
 WHERE a.sno = b.sno(+)
 AND a.name = '1000';法2
 CREATE OR REPLACE VIEW v_2
  AS 
  SELECT b.* FROM b
  WHERE b.sno IN (SELECT a.sno FROM a
 WHERE a.name = '1000');  请问这两种建视图的方法,那种可以往视图里写入数据?
还是两种都可以?如果两种都不可以,我该用怎么样的方法进行连立,才能进行视图的数据写入操作???在线急等,请帮忙。

解决方案 »

  1.   

    法2
     CREATE OR REPLACE VIEW v_2
      AS 
      SELECT b.* FROM b
      WHERE b.sno IN (SELECT a.sno FROM a
     WHERE a.name = '1000');  
    可以
      

  2.   

    多谢各位。
    可是我用第二种方法写入数据的时候,不提示写入成功于否,只是无响应。第一种方法,我在表A上建了主键啊,是SNO和name的联合主键。
    是联合主键。我只想往表B里写入数据,不往表A里面写。vc555(学习甲骨文),能把第一种方法说得再清楚一些吗?要在A表上建什么样的主键?
      

  3.   

    用user_updatable_columns表能够查询到该表或者视图是否可更新。如果不行就建立一个替代触发器就可以更新视图了