alter view teacher('姓名','分数','等级') as select a.tname,b.score,b.grade from teacher2 a,evaluate b where a.tno=b.tno
我这里想修改视图teacher,它原先只有姓名和分数两列,现在我想在增加一列等级,但是我用上面这条语句修改它的时候报错了。错误为:选项缺失或无效。求解

解决方案 »

  1.   

    你的先加一列吧?
    然后 update?
      

  2.   

    也不是很重要的系统吧。直接 create or replace view 就好了。
      

  3.   

    使用ALTER VIEW还是有几个需要注意的地方。如果你的视图访问新的对象,那么该视图的许可必须和新对象的许可一样,否则视图不能成功访问新对象。
      
      此外,修改视图的用户必须拥有与该视图有关的表格、视图、表格值函数的ALTER VIEW和SELECT许可以及对该视图调用的标量函数(scalar-valued function)的EXECUTE许可。
      
      你还需要牢记一点:如果你最初用WITH ENCRYPTION或者CHECK OPTION创建的视图,你必须在ALTER VIEW语句后面再次包含这些参数。也就是说,如果你修改了视图,那么你必须重新设置WITH ENCRYPTION和CHECK OPTION。这些参数不会自动保留下来。
      

  4.   

    http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_4004.htm