oracle视图用 pl/sql developer 查看时红色错误提示有编译错误
1. 通过plsql右键的recompile 编译提示 compiled with errors 
2. 用plsql打开视图的edit窗口,直接执行语句,红叉消失,编译成功谁遇到过这个问题? 原因是什么? 而且这个问题会隔不久就出现..

解决方案 »

  1.   


    建视图中的sql语句中的基表可能有被删又被建回来的嫌疑
      

  2.   

    我有碰到这种情况,触发器和存储过程,这些触发器和存储过程都有对一张表 记录表进行insert 操作。
    我有一次修改了 这张记录表的varchar2的长度,所有的触发器就报错了 ,查询状态为invalid ,重新编译一下就ok了
      

  3.   

    贴一个常出这种问题的视图.
    create or replace view view_produce_sim as
    select
        "PRODUCE_INFO"."PRODUCE_ID",         --
        "PRODUCE_INFO"."PRODUCE_FLAG",
        "PRODUCE_INFO"."PRODUCE_NAME",
        "PRODUCE_INFO"."PRODUCE_TYPE",
        "PRODUCE_INFO_MX"."PRODUCE_MX_ID",
        "PRODUCE_MX_LIBRARY".PRODUCE_MX_LIBRARY_ID,
        "PRODUCE_INFO_MX"."PRODUCE_MX_TYPE",
        "PRODUCE_INFO_MX"."PRODUCE_FACT_LANE_NUM",
        "PRODUCE_INFO_MX"."PRODUCE_FACT_LIB_NUM",
        "PRODUCE_MX_LIBRARY"."PRODUCE_TEMP_FACT_NUM",
        "PRODUCE_MX_LIBRARY"."PRODUCE_TEMP_NUM",
        "PRODUCE_INFO_MX"."PRODUCE_LIBRARY_LANE",
        "PRODUCE_INFO_MX"."PRODUCE_SAMPLE_PE",
        "SAMPLE_MANAGER_MX".*,
        "SAMPLE_MANAGER"."ITEM_ID",
        "SAMPLE_MANAGER"."SAMPLE_OUT_TIME",
        "SAMPLE_MANAGER".ITEM_NAME
       from "PRODUCE_INFO"
       inner join  "PRODUCE_INFO_MX" on
       "PRODUCE_INFO"."PRODUCE_ID"="PRODUCE_INFO_MX" ."PRODUCE_ID"
       inner join  "PRODUCE_MX_LIBRARY" on
       "PRODUCE_INFO_MX" ."PRODUCE_MX_ID"="PRODUCE_MX_LIBRARY".PRODUCE_MX_ID
       inner join  "SAMPLE_MANAGER_MX" on
       "PRODUCE_MX_LIBRARY" ."PRODUCE_MX_LIBRARY_ID"="SAMPLE_MANAGER_MX"."SAMPLE_MX_ID"
       inner join  "SAMPLE_MANAGER" on
       "SAMPLE_MANAGER_MX"."SAMPLE_ID"="SAMPLE_MANAGER"."SAMPLE_ID"
       where "PRODUCE_MX_LIBRARY"."PRODUCE_MX_TYPE"='l' WITH READ ONLY