ORA - 01731:出现循环的视图定义建立视图的语句如下:
CREATE OR REPLACE VIEW AGREEMENT AS
SELECT agreement.agreement_id,
         agreement.agent_id,
         agreement.agreement_name,
         agreement.agreement_type,
         agreement.startdate,
         agreement.enddate,
         agreement.totaltimelen
    FROM agreement  @nfadv;
我想是不是由于表名和视图名一致导致的错误

解决方案 »

  1.   

    @nfadv;
    你这个DBLINK还是连接的本身这个库吗
      

  2.   

    这个跟agreement这个名字没有关系,视图的名字可以与另一库的基表一样。确认agreement@nfadv是在另一库对应的是一个物理表,还是一个视图。
    一直追踪到底层的物理表。
      

  3.   

    问题原因找到了
    ORA - 01731:出现循环的视图定义建立视图的语句如下:
    CREATE OR REPLACE VIEW AGREEMENT AS
    SELECT agreement.agreement_id,
      agreement.agent_id,
      agreement.agreement_name,
      agreement.agreement_type,
      agreement.startdate,
      agreement.enddate,
      agreement.totaltimelen
      FROM agreement @nfadv;
    ---------------原因分析:1.@nfadv这个库下不存在agreement这个表,你在本库中定义的名字是:agreement2.agreement @nfadv;-------中间还有个空格;问题重现:1.源库中不存在表的时候,创建视图就会报这个错误,
     create view tt111111
         as
         select * from tt111111;
    2.如果存在,就不会报错了。