日期:2014-05-17  浏览次数:20785 次

关于Oracle中用连接建视图,急等.
我建了一个视图视图角本如下。
法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 ');    

请问这两种建视图的方法,那种可以往视图里写入数据?
还是两种都可以?如果两种都不可以,我该用怎么样的方法进行连立,才能进行视图的数据写入操作???

在线急等,请帮忙。

------解决方案--------------------
法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 ');
可以
------解决方案--------------------
第二种方法可以,但不知道你是用什么工具插入数据的,不管对错,操作执行完后总该有个反应啊?
第一种方法,不用联合主键,只在A表一个列上设主键。
------解决方案--------------------
用user_updatable_columns表能够查询到该表或者视图是否可更新。

如果不行就建立一个替代触发器就可以更新视图了