1

我想对现有的存储过程进行一些更改;在表中插入值,第一个值将来自序列,其他值必须是不同的。

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

1 回答 1

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;
于 2012-10-04T23:14:37.397 回答