直接访问视图,然后加条件效果不是一样的?select * from view_name where id=XXX

解决方案 »

  1.   

    好比说,我想查一些记录
    SELECT * FROM A WHERE DATE=‘pp’就想把这个 pp 当作参数传过去。
    先查整个视图,再筛选,速度无法接受
      

  2.   

    上次见过一个类似的帖子,找了很多资料,想了很久,但是最终还是没有答案. oracle中有很多系统自己的视图.比如针对某个表与不同的表关联,建了几个视图,如果可以在视图中带参数的话,涉及到每个表的只要建一个视图传递参数就行了.oracle 就没有必要建那么多的视图了,  所以...
      

  3.   

    redhf(农民的儿子)说的很好,我认为还是应该从如何提高视图的查询速度入手,比如试图建立的条件,索引等
      

  4.   

    这是可以的,不过用view 就行不通了,可以用function 来实现。
    大概是这样的: 
      先建一个function,但这个function反回值的类型是一个table.具体怎么建这个function
     自己去查查语法去吧。
      然后select  your_function( val )  from dual 就可以了。 function可以返回一个table类型是9i新增的功能 。
      

  5.   

    Creating a View with Constraints: Example
    The following statement creates a restricted view of the sample table hr.employees and defines a unique constraint on the email view column and a primary key constraint for the view on the emp_id view column:CREATE VIEW emp_sal (emp_id, last_name, 
          email UNIQUE RELY DISABLE NOVALIDATE,
       CONSTRAINT id_pk PRIMARY KEY (emp_id) RELY DISABLE NOVALIDATE)
       AS SELECT employee_id, last_name, email FROM employees;