PL/SQL + Oracle10.1
[1]从数据库A中导出function和view(就是一大堆SQL语句)
[2]将导出的function和view,在另一数据库B中执行
[3]在数据库B中发现有一些function和view被打上了红x
[4]如果recompile这些对象,会报“名称无效”之类的错误;但查看这些对象的SQL,然后再按F8(执行),则一切正常,且红x也消失了。这是为什么呢?

解决方案 »

  1.   

    如果说换成procedures我还想到是不是每个procedure后没加“/”
    function和view应该不用加“/”
    以前好像我似乎遇到这样的情况,当时也只是感觉奇怪
      

  2.   

    是不是同时导出了表和视图以及procedure的定义,
    如果先执行了视图及procedure的定义,后执行的表的定义,就会出现你说的那种情况.
      

  3.   

    function必须加上"/",视图就只要加上;就行了
      

  4.   

    哦对的!function要最后加“/”才行,估计你就是一起执行时候,每个function后面没的“/”