2014-11-11 1 views
1

mview 생성시 with 절에서 pl sql 정의를 사용하는 방법은 무엇입니까?with 절을 포함한 mview 생성하기

예를 들어 설명하면 도움이 될 것입니다.

또한 다음 쿼리를 시도하고 일부 오류가 발생했습니다.

create table tab1 
(
    fname varchar2(15) , 
    lname varchar2(15) 
); 


create or replace type user_data_type as object (val1 varchar2(20),val2 varchar2(20)); 
/

CREATE OR REPLACE Function get_fname_lname(n in varchar2) 
RETURN user_data_type as 
name user_data_type; 
cursor buffer_cur is 
select fname,lname from tab1 where fname=n; 
BEGIN 
    name := new user_data_type(null,null); 
    OPEN buffer_cur; 
    fetch buffer_cur into name.val1,name.val2; 

    close buffer_cur; 
    return name; 
End; 
/
select * from tab1; 
select get_fname_lname(fname).val1 fname,get_fname_lname(fname).val2 from tab1; 

drop materialized view mv1; 
create materialized view mv1 
with names as 
(select get_fname_lname(fname).val1 fname,get_fname_lname(fname).val2 lname from tab1) 
select fname,lname from names; 
select * from mv1; 

는이 오류를 보았다 :

Error while creating mview: 
ORA-00905: missing keyword 

어떤 하나가 문제가 될 수있는 걸 지적 할 수 있습니다.

답변

0

oracle에서 재귀 뷰가 지원되지 않으므로보기를 만드는 동안 이와 같은 방법을 시도해 볼 수 있습니다. helps..Can 고맙습니다 저

create materialized view mv1 
as 
select fname,lname from 
(select get_fname_lname(fname).val1 fname,get_fname_lname(fname).val2 lname 
from tab1); 
+0

이미 인라인 뷰를 작성하고 뷰에 대해 당신은 오라클에서 지원되지 않습니다 구체화 된 뷰를 만들려고 절을 사용하여 당신은 내게 몇 가지 예제 예를 들어 줄 내 첫번째 질문. – starkk92

+0

@ starkk92 - 샘플에서 구체화 된보기를 만들겠습니까? 뷰를 생성하는 동안 with 절을 사용하면 뷰 내에서 뷰가 발생하므로 사용하면 안됩니다. – arunb2w

관련 문제