2012-10-04 5 views
1

기존의 저장 프로 시저를 일부 변경하려고합니다. 테이블에 값을 삽입하십시오. 첫 번째 값은 시퀀스에서 나오고 다른 값은 구별되어야합니다.seq.nextval 및 다른 고유 한 값을 삽입하십시오.

create SP_Emp() 
....... 
insert into table_emp(primary_key,name,dept,sal,id) 
select distict 
seq_emp.nextval, 
first_value(name) over partition by(id), 
id as id, 
..... 
..... 
END; 

오류는 허용되지 않는 시퀀스 번호입니다.

나는 별개의 행에 seq.nextval 다른 모든 값을 유지, 값을 삽입 할

이전 절차했다 :

create SP_Emp() 
....... 
insert into table_emp(name,dept,sal,id) 

select distict 

first_value(name) over partition by(id), 
id as id, 
..... 
..... 

END; 

답변

4

는 인라인보기로 괄호에 SQL 문을 싸서 그런 다음 시퀀스를 추가하십시오.

create SP_Emp() 
....... 
insert into table_emp(primary_key,name,dept,sal,id) 
select seq_emp.nextval, s.* 
from (
    select distinct 
    first_value(name) over partition by(id), 
    id as id,  
..... 
     ) s 
..... 
END; 
관련 문제